ffmpeg-map

1. 使用 -map 选项选择流
	1.1 examples简单的例子
	1.2 behavior默认行为
2. Syntax语法
	2.1 Modifiers修饰符
	2.2 Order顺序
3. Examples例子
	3.1 选择所有流
	3.2 特定类型的流
	3.3 仅特定视频流
	3.4 来自不同文件的视频和音频
	3.5 除音频外的所有内容
	3.6 特定语言
	3.7 从过滤器中选择输出
	3.8 多路输出
	3.9 可选映射
	3.a 重新排序流
4. See also

1. 使用 -map 选项选择流

  • top 命令不使用任何流说明符。这是一种绝对的映射方法,无论类型如何,都会选择特定的流。
    • -map 0:0  第一个输入文件的第一个流
    • -map 1:3  第二个输入文件的第四个流
  • bottom 命令包括流说明符(v视频, a音频, s字幕, m元数据)以将流限制为特定类型。
    • -map 0:v:0  第一个输入文件的第一个视频流
    • -map 1:a:2  第二个输入文件的第三个音频流
    • -map 1:s:1  第二个输入文件的第二个字幕流

1.1 examples简单的例子

  • -map 0  从输入索引 #0(第一个输入)中选择所有流。
  • -map 1:a  从输入索引 #1(第二个输入)中选择所有音频流。
  • -map 3:s:4  从输入索引#3(第四个输入)选择字幕流索引#4(第五个字幕流)。
  • -map 0 -map -0:s  将从输入索引 #0(第一个输入)中选择除字幕之外的所有流。-指负映射。

1.2 behavior默认行为

如果您不使用该-map选项,则默认流选择行为将自动选择流。
  • 默认流选择不会自动选择所有流。
  • 每种类型仅选择 1 个流。例如,如果输入有 3 个视频流,它只会选择 1 个。
  • 默认流选择将根据特定标准选择流。
  • 使用该-map选项会禁用默认流选择行为,并允许您手动选择流。

2. Syntax语法

-map input_file_index:stream_type_specifier:stream_index
  • input_file_index  指的是一个输入,默认情况下将包括它的所有流。
  • stream_type_specifier  (可选)是一个流说明符,它将选择限制为特定的流类型。流符包括vIDEO,aUDIO,subtitles,dATA,一个ttachments。下面的大多数示例都使用流说明符。
  • stream_index  (可选)将选择一个特定的流。如果stream_type_specifier使用,则stream_indexonly 引用选定的流类型并忽略所有其他流类型。
注意:索引号从 0 开始。所以第一个输入或流是#0,第二个输入或流是#1,第三个输入或流是#2,等等。

2.1 Modifiers修饰符

  • -索引input_file_index,如-map -0:v,创建了一个负的映射。这不包括先前map已经选择的流。
  • 尾随?,例如-map 1:a?,将允许map是可选的。如果map不匹配任何流,则map将被忽略而不是失败。请注意,如果使用无效,映射仍然会失败input_file_index;例如,如果map引用不存在的输入。

2.2 Order顺序

-map order 确定输出中的流顺序。
映射按顺序应用。这在使用负映射时很有用。

3. Examples例子

提示:您可以添加-c copy到这些示例中的许多以启用流复制模式。如果您只想多路复用并避免编码,这很有用。

3.1 选择所有流

单输入:
ffmpeg -i input.avi -map 0 output.mkv
多个输入:
ffmpeg -i input0.mkv -i input1.mp4 -i input2.wav -map 0 -map 1 -map 2 output.mkv
使用流复制重新混合(无编码):
ffmpeg -i input.avi -map 0 -c copy output.mkv

3.2 特定类型的流

仅视频流
ffmpeg -i input.mp4 -map 0:v output.mp4
仅音频流
ffmpeg -i input.mp4 -map 0:a output.mp4

3.3 仅特定视频流

选择第 5 个视频流:
ffmpeg -i input.mkv -map 0:v:4 output.mp4

3.4 来自不同文件的视频和音频

ffmpeg -i video.mp4 -i audio.m4a -map 0:v -map 1:a output.mp4

3.5 除音频外的所有内容

使用负映射:
ffmpeg -i input.mp4 -map 0 -map -0:a output.mp4

3.6 特定语言

包括所有视频和所有带有西班牙语元数据的流:
ffmpeg -i input.mkv -map 0:v -map 0:m:language:spa output.mp4
见ISO名单639-1码为3个字母的语言名称。

3.7 从过滤器中选择输出

在这个例子中,过滤后的视频被命名[v],过滤后的音频被命名为[a]:
ffmpeg -i input.mp4 -i logo.png -i audio.mp3 -filter_complex "[0]scale=1280:-1[bg];[bg][1]overlay[v];[2:a]volume=-3dB[a]" -map "[v]" -map "[a]" output.mp4
您几乎可以使用任何任意名称来标记过滤器输出。

3.8 多路输出

将视频输出到video.mp4. 将音频流索引 #1(第二个音频流)输出到audio_1.mp3. 将音频流索引 #3(第四个音频流)输出到audio_3.wav:
ffmpeg -i input.mkv -map 0:v video.mp4 -map 0:a:1 audio_1.mp3 -map 0:a:3 audio_3.wav

3.9 可选映射

如果流不存在, 添加尾随问号 ( ?)-map将忽略映射。
要映射视频和音频流并在不存在音频流时忽略音频映射:
ffmpeg -i input.webm -map 0:v -map 0:a? output.mkv
如果改为使用-map 0:a,并且没有音频流,ffmpeg则将失败并显示Stream map '0:a' matches no streams. To ignore this, add a trailing '?' to the map..

3.a 重新排序流

你的顺序-map选择决定了输出流的顺序。在这个例子中,输入文件将音频作为流#0 和视频作为流#1(这可能但不寻常)。重新定位视频的示例,使其首先列出,然后是音频:
ffmpeg -i input.mp4 -map 0:v -map 0:a -c copy output.mp4

4. See also

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中提到了关于使用`-map`选项的说明,该选项可以告诉ffmpeg从输入源中选择/拷贝哪个流作为输出。使用`-map`选项时,可以通过指定流的索引来选择特定的流。例如,`-map 0`表示选择第一个输入文件的所有流,`-map 0:0`表示选择第一个输入文件的第一个流,`-map 1:3`表示选择第二个输入文件的第四个流。 在具体的命令`ffmpeg -map`后面还可以跟着其他参数和选项,以进一步指定输出文件的编码格式等。例如,`ffmpeg -i xsg01-15.mkv -i 01_bglz.MP3 -map 0:v -vcodec copy -map 1:a -acodec copy hello1.mkv`表示将第一个输入文件的视频流复制到输出文件,并将第二个输入文件的音频流复制到输出文件。 需要注意的是,如果没有明确指定`-map`选项,ffmpeg会自动选择输入源中的视频流和音频流,通常选择分辨率最高的视频流和通道数最多的音频流作为默认输出。同时,字幕流会选择第一个被检索到的字幕流。 所以,根据您的问题中提供的引用内容,无法确定具体的命令是什么,因为`ffmpeg -map`后面的具体参数和选项未被提供。如果您能提供更多细节或具体的问题,我将非常乐意为您提供更准确的回答。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [ffmpeg-commands](https://download.csdn.net/download/weixin_42175516/15615604)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [FFMPEG-map指令](https://blog.csdn.net/bing_goo/article/details/128953753)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值