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

The*_*gth 18 stdin ffmpeg stdout file stream

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

Ser*_*rge 20

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

来自man ffmpeg-protocols:

PROTOCOLS

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

配置FFmpeg构建时,默认情况下会启用所有支持的协议.您可以使用configure选项列出所有可用的列表--list-protocols.

您可以使用configure选项禁用所有协议 --disable-protocols,并使用该选项有选择地启用协议--enable-protocol=PROTOCOL,或者您可以使用该选项禁用特定协议--disable-protocol=PROTOCOL.

-protocolsff*工具的选项将显示支持的协议列表.

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

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

接受的语法是:

       pipe:[<number>]
Run Code Online (Sandbox Code Playgroud)

number是与管道的文件描述符对应的数字(例如,对于stdin为0,对于stdout为1,对于stderr为2).如果未指定number,则默认情况下stdout文件描述符将用于写入,stdin用于读取.

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

  • 在我的ffmpeg(1.2.1)版本中,它是`ffmpeg -protocols` (16认同)