Ffmpeg неправильно конвертирует видео при запуске в качестве демона - PullRequest
0 голосов
/ 20 января 2019

Я использую ffmpeg для преобразования и разделения видео из процесса Python.Когда я запускаю его из консоли как обычный пользователь, все работает, как и ожидалось, однако, если я запускаю его как демон, он выдает такое же количество файлов, но с молчанием почти во всем файле.

Это строкаЯ выполняю из python:

def convert_to_ffmpeg(file, ffmpeg_folder, chunk_length):
    res = -1
    try:
        file_name = os.path.join(ffmpeg_folder, ntpath.basename(file) + ".flac")
        res = os.system("ffmpeg -i " + file + " -f segment -segment_time "+str(chunk_length)+" " + file_name + " -y  >/dev/null 2>&1")
    except Exception as e:
        raise MyException(code=210005, detalails=file, cause=e)
    if not res == 0:
        raise MyException(code=210004, detalails=str(res) + " - " + file)
    return file_name

Когда я запускаю его с нормальной консоли, он работает как положено: он разбивает видео на фрагменты «self._chunk_length» секунд.

Однако, еслиЯ запускаю программу, используя python-daemon, с таким кодом:

if daemon_run:
    pid_file = check_unclean_exit(config['pidfile'], log)

    context = daemon.DaemonContext(
        working_directory=approot,
        umask=0o002,
        pidfile=pid_file,
    )
    context.signal_map = {
        signal.SIGTERM: programa_cleanup,
        signal.SIGHUP: 'terminate',
        # signal.SIGUSR1: reload_program_config,
    }

    with context:
        convert_to_ffmpeg("/foo/testfile.mkv", "/foo/ffmpeg", 40) 

Она производит ТОЧНО одинаковые куски, однако большая часть содержимого кусков - просто тишина.Он разделяется в нужной точке, но не полностью заполняет содержимое аудиовыхода.Конечно, исключение не выдается, поскольку ffmpeg всегда возвращает 0

Я даже установил полностью свежий Debian 9 на виртуальную машину, чтобы устранить проблемы с ffmpeg и настройкой моего старого доброго компьютера.

Конечно, это упрощенный пример.Настоящая вещь - это многопоточное приложение, которое просматривает каталог для файлов для конвертации.

...