WenRou's Blog
ffmpeg修改默认音轨
2026-6-26 温柔哥
第一步:

你需要确定你想要设置为默认的音轨的索引。你可以使用FFmpeg的ffprobe工具来查看视频文件的音轨信息。

打开命令提示符或终端,然后输入以下命令(把你的视频重新命名为input.mp4)

ffprobe -v error -show_entries stream=index:stream_tags=language -of csv=p=0 input.mp4

这个命令会列出所有音轨的索引和语言标签。例如,输出可能看起来像这样:

0,und

1,eng

2,fra

这里,0是默认音轨(通常是原始音轨),1是英语音轨,2是法语音轨。





第二步:



一旦你知道了要设置为默认的音轨的索引,你可以使用FFmpeg来重新编码视频文件,并指定默认音轨。使用-map选项来指定音轨,并通过-metadata:s:a:0(对于音频流)来设置默认音轨的语言标签。

例如,如果你想要将英语音轨(索引为1)设置为默认音轨,你可以使用以下命令:(output.mp4指的是更改默认英规后的视频名)

ffmpeg -i "input.mp4" -map 0:v -map 0:a:0 -map 0:a:1 -map 0:a:2 -c copy -disposition:a:1 default -y "output.mp4"



这里:

-i input.mp4 指定输入视频。

 -map 0:v -map 0:a:0 -map 0:a:1 告诉FFmpeg保留视频流和指定的音轨(索引为0的英语音轨和索引为1的中文音轨)。

-c copy 指示FFmpeg仅复制流而不重新编码(这样可以加快处理速度并保持高质量)。

-disposition:a:1 default设置音频轨道的第二个为默认值

output.mp4 是输出文件名。



方案二

ffmpeg -i input.mp4 -map 0:v -map 0:a:1 -c:v copy -c:a:1 copy -metadata:s:a:1 language=zho output.mp4

只保留想要的音频流







第三步:

通过这些步骤,你可以在FFmpeg中指定默认音轨。如果你希望这个过程自动化,可以将上述命令放入一个批处理文件(.bat文件)中,并运行它。例如

@echo off

chcp 65001

ffmpeg -i input.mp4 -map 0:v -map 0:a:1 -c:v copy -c:a:1 copy -metadata:s:a:1 language=zho output.mp4

pause




发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容