WenRou's Blog

新浪微薄腾讯微薄

最新碎语:测试图片碎语哦

您的位置:WenRou's Blog >分享> ffmpeg修改默认音轨

ffmpeg修改默认音轨

第一步:
你需要确定你想要设置为默认的音轨的索引。你可以使用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

---

转载请注明本文标题和链接:《ffmpeg修改默认音轨

发表评论

81 + 2 =
路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交