我知道ffmpeg可以从 stdin
读取数据,而不是使用 ffmpeg -i -
从磁盘读取。这对所有文件格式都支持吗?如果不支持,是否有一个列出支持哪些文件格式的列表?
ffmpeg -protocols
来确定你的版本的ffmpeg是否支持pipe
协议(从标准输入和标准输出读写),然后运行ffmpeg -formats
以查看支持的格式列表。在下面的摘录中,你将会看到有关输出管道的注释,它必须对某些协议进行可定位性限制。对于输入协议,它没有这样的限制。man ffmpeg-protocols
:
PROTOCOLS
协议是FFmpeg中的配置元素,允许访问需要使用特定协议的资源。--list-protocols
列出所有可用的协议。--disable-protocols
禁用所有协议,并使用选项--enable-protocol=PROTOCOL
选择性地启用一个协议,或者使用选项--disable-protocol=PROTOCOL
禁用特定协议。-protocols
将显示支持的协议列表。 pipe:[<number>]
number是文件描述符对应的数字(例如stdin为0,stdout为1,stderr为2)。如果未指定number,则默认使用stdout文件描述符进行写操作,使用stdin进行读操作。
请注意,某些格式(通常为MOV)要求输出协议可寻址,因此它们将无法使用管道输出协议。
ffmpeg -protocols
。 - Kevin Bullaughey