ffmpeg:哪种文件格式支持stdin使用?

时间:2012-10-21 16:18:47

标签: file stream ffmpeg stdout stdin

我知道ffmpeg能够从stdin读取数据,而不是使用ffmpeg -i -从磁盘读取数据。是否支持所有文件格式?如果不是,是否有支持哪种文件格式的列表?

1 个答案:

答案 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)需要输出协议   为了可以搜索,所以他们将使用管道输出协议失败。