ffmpeg:哪些文件格式支持标准输入?

Posted

技术标签:

【中文标题】ffmpeg:哪些文件格式支持标准输入?【英文标题】:ffmpeg: which file formats support stdin usage? 【发布时间】:2012-10-11 13:39:05 【问题描述】:

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

【问题讨论】:

你怎么知道的?它在文档中吗? 【参考方案1】:

您需要运行ffmpeg -protocols 以确定您的ffmpeg 版本是否支持pipe 协议(从标准输入和标准输出读取和写入),然后运行ffmpeg -formats 以查看支持的格式列表。在下面的摘录中,您将看到输出管道上的注释,它必须可用于某些协议。对于输入协议,它没有这样的限制。

来自man ffmpeg-protocols

协议

协议是 FFmpeg 中允许访问的配置元素 需要使用特定协议的资源。

当你配置你的 FFmpeg 构建时,所有支持的协议都是 默认启用。您可以使用列出所有可用的 配置选项--list-protocols

您可以使用配置选项禁用所有协议 --disable-protocols,并使用 选项--enable-protocol=PROTOCOL,或者您可以禁用特定的 协议使用选项--disable-protocol=PROTOCOL

ff*工具的选项-protocols会显示列表 支持的协议。

以下是对当前可用协议的描述。 ... 管道 UNIX 管道访问协议。

允许从 UNIX 管道读取和写入。

接受的语法是:

       pipe:[<number>]

number 是对应的文件描述符的编号 管道(例如,0 表示标准输入,1 表示标准输出,2 表示标准错误)。如果号码不是 指定,默认情况下标准输出文件描述符将用于 写作,阅读的标准输入。

请注意,某些格式(通常是 MOV)需要输出协议 是可搜索的,因此它们将因管道输出协议而失败。

【讨论】:

谢谢,这完全符合我的要求;) 在我的 ffmpeg (1.2.1) 版本中是ffmpeg -protocols

以上是关于ffmpeg:哪些文件格式支持标准输入?的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg 如何指定输入特殊视频格式

ffmpeg 最大允许多大文件

转,ffmpeg参数中文详细解释

HTML5里video标签支持哪些格式的视频文件?

如何使用FFmpeg进行时间戳定位

关于用ffmpeg制作视频格式转换器的问题