ffmpeg use pipe завершается неудачно с: Невозможно найти подходящий выходной формат для 'pipe: 1:' - PullRequest
0 голосов
/ 02 мая 2019

Используя протокол канала, ffmpy может читать входные данные из STDIN и записывать выходные данные в STDOUT.Это может быть достигнуто с помощью конвейерного протокола FFmpeg.

В следующем примере данные считываются из файла, содержащего необработанные видеокадры в формате RGB, и передаются в ffmpy на STDIN;В свою очередь, ffmpy будет кодировать необработанные данные кадров с помощью H.264 и упаковывать их в контейнер MP4, передавая вывод в STDOUT (обратите внимание, что вы должны перенаправить STDOUT процесса в канал, используя subprocess.PIPE в качестве значения stdout, в противном случае выводпотеряюсь):

>>> import subprocess
>>> ff = FFmpeg(
...     inputs={'pipe:0': '-f rawvideo -pix_fmt rgb24 -s:v 640x480'},
...     outputs={'pipe:1': '-c:v h264 -f mp4'}
... )
>>> ff.cmd
'ffmpeg -f rawvideo -pix_fmt rgb24 -s:v 640x480 -i pipe:0 -c:v h264 -f mp4 pipe:1'
>>> stdout, stderr = ff.run(input_data=open('rawvideo', 'rb').read(), stdout=subprocess.PIPE)

Но приведенный выше код не работает для меня.

...