FFmpeg笔记-Stream specifiers
ffmpeg的一些选项是可以作用到具体的stream上的,比如编解码器,是可以指定具体的哪个流用哪种编解码器的。所以需要一种方式能指定具体的流,也就是Stream specifiers。
Stream specifiers追加在选项后面,两者通过冒号隔开。比如:-codec:a:1 ac3,指的是对于第二个音频流,使用ac3编解码器。
Stream specifiers还可以同时指定多个流,比如:-b:a 128k就选中了所有的音频流。
如果不指定Stream specifiers,则选项会应用到素有流上,比如:-codec copy和-codec: copy。
Stream specifiers可以有一下几种格式:
stream_index流的索引,从0开始。比如:
-threads:1 4设置第二个流用的线程数为4stream_type[:stream_index]stream_type为流的类型,可选值有:
v和V匹配视频(v匹配所有视频流,V只匹配视频流而不匹配衍生的附加图片,视频缩略图,封面等)a匹配音频s匹配字幕d匹配datat匹配附件
如果指定了
[:stream_index]则匹配对应的类型的第几个流,否则匹配这个类型的所有流。p:program_id[:stream_index]
通过program_id指定对应的程序。(不是很明白)
#stream_id或者i:stream_id
通过流的stream_id直接匹配流(有些格式支持这种特性)
m:key[:value]
匹配元数据包含有key的流,如果指定了[:value],则还要求值要匹配。
u
通过配置匹配流(可能有些编解码器支持,不是很明白)
参考资料
如果觉得文章对你有帮助,就打赏杯咖啡钱呗😊

