Запись видео ffmpeg повреждена - PullRequest
       1

Запись видео ffmpeg повреждена

0 голосов
/ 10 сентября 2018

Я запускаю следующую команду для записи видео через ffmpeg

ffmpeg -y -rtbufsize 100M -f gdigrab -framerate 10 -i desktop -c:v libx264 -r 10 -tune zerolatency -pix_fmt yuv420p record.mp4

Это прекрасно работает, когда я запускаю его через PowerShell (я прекращаю запись вручную, нажимая ctrl + c).

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

def recThread():
    cmd = 'ffmpeg -y -rtbufsize 100M -f gdigrab -framerate 10 -i desktop -c:v libx264 -r 10 -tune zerolatency -pix_fmt yuv420p ' + videoFile
    global proc
    proc = subprocess.Popen(cmd)
    proc.wait()
def stop():
    proc.terminate()

Однако, когда я запускаю это, видео повреждено.Я попытался использовать команду os.system вместо подпроцесса и получил тот же результат.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 14 сентября 2018

Я попытался изменить формат видео на avi, и это сработало как шарм. После этого выяснил, почему то же самое не работает с mp4, и обнаружил, что если используется кодер h264, ffmpeg выполняет операцию во время выхода для поддержки преобразования h264. proc.terminate() не позволяет ffmpeg выходить изящно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...