我知道ffmpeg能够从stdin
读取数据,而不是使用ffmpeg -i -
从磁盘读取数据。是否支持所有文件格式?如果不是,是否有支持哪种文件格式的列表?
答案 0 :(得分:18)
您需要运行ffmpeg -protocols
以确定您的ffmpeg版本和pipe
中是否支持ffmpeg -formats
协议(stdin和stdout的读写)以查看列表支持的格式。在下面的摘录中,您将看到关于输出管道的注释,它必须可以为某些协议寻找。对于输入协议,它没有这样的限制。
来自man ffmpeg-protocols
:
<强> PROTOCOLS 强>
协议是FFmpeg中允许访问的配置元素 需要使用特定协议的资源。
配置FFmpeg构建时,所有支持的协议都是 默认启用。您可以使用以下列出所有可用的列表 配置选项
--list-protocols
。您可以使用configure选项禁用所有协议
--disable-protocols
,并使用选择性地启用协议 选项--enable-protocol=PROTOCOL
,或者您可以禁用特定内容 使用选项--disable-protocol=PROTOCOL
的协议。ff *工具的选项
-protocols
将显示列表 支持的协议。以下是当前可用协议的描述。 ...管
UNIX管道访问协议。允许从UNIX管道读取和写入。
接受的语法是:
pipe:[<number>]
number是与文件描述符对应的数字 管道(例如0表示stdin,1表示stdout,2表示stderr)。如果数字不是 指定,默认情况下将使用stdout文件描述符 写作,stdin阅读。
请注意,某些格式(通常为MOV)需要输出协议 为了可以搜索,所以他们将使用管道输出协议失败。