我想将 ffmpeg 输出通过管道传输到其他进程,如下所示:
ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0 - | process
。我明白了Unable to find a suitable output format for 'pipe:' pipe:: Invalid argument
。如何实现管道传输?
答案1
您必须提供格式-f
,例如:
ffmpeg … -f matroska - | process
- 有关可用格式的列表,请参阅
ffmpeg -formats
。 - 请注意,某些格式(通常是 MOV)要求输出协议可寻址,因此它们将无法使用管道输出协议。
- 另请参阅FFmpeg 文档:管道协议。
答案2
在这种情况下,FFmpeg 无法推断所需的输出格式,-
使用前必须明确指定输出格式-f fmt
(替换fmt
为所需的格式)。
ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0 -f fmt - | process