ffmpeg使用管道失败,原因:无法为'pipe:1:'找到合适的输出格式

时间:2019-05-02 06:21:01

标签: python ffmpeg pipe

使用管道协议 ffmpy可以从STDIN读取输入,也可以将输出写入STDOUT。这可以通过使用FFmpeg管道协议来实现。

以下示例从包含RGB格式的原始视频帧的文件中读取数据,并将其传递给STDIN上的ffmpy; ffmpy会依次使用H.264编码原始帧数据,并将其打包在MP4容器中,然后将输出传递到STDOUT(请注意,您必须使用subprocess.PIPE作为stdout值将流程的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)

但是上面的代码对我不起作用。

0 个答案:

没有答案