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