ffmpeg的map参数可以指定输入流和输出流的映射关系。
参数格式:
1 |
-map [-]input_file_id[:stream_specifier][?][,sync_file_id[:stream_specifier]] | [linklabel] (output) |
input_file_id
指定输入文件索引,从0开始,比如0表示第一个输入文件,1表示第二个输入文件。
stream_specifier
指定对应的文件中具体的流。可以参考:FFmpeg笔记-Stream specifiers | 木杉的博客
input_file_id
前面的负号表示从已经建立的map关系中去掉这个映射。
?
问号表示如果对应的流不存在则忽略。否则默认是会报错提示这个流不存在的。
具体使用得看例子:
映射第一个输入的所有流到输出:
ffmpeg -i INPUT -map 0 output
假设输入文件中有两个音频流,他们可以通过0:0和0:1指定,然后下面的命令选择第二个音频到输出文件(第一个流忽略):
ffmpeg -i INPUT -map 0:1 out.wav
选择a.mov的第三个流和b.mov的第七个流输出到out.mov中:<