使用手刹通过命令行将包含所有字幕和音频的视频转换为 mp4

Posted

技术标签:

【中文标题】使用手刹通过命令行将包含所有字幕和音频的视频转换为 mp4【英文标题】:Convert videos with all contained subtitles and audio into mp4 via commandline using handbrake 【发布时间】:2015-01-29 17:34:36 【问题描述】:

我想将我使用 Handbrake 的视频从 mkv 转换为 mp4。但我希望 mkv 中包含的所有音频文件和字幕都放入新的 mp4 容器中!

我使用 Handbrake 0.9.9 GUI,因为在此版本中,您可以在首选项('Add all remaining'/'Add all')下预定义默认的音轨和字幕数量。现在我想通过 HandBrakeCLI 实现相同的目标。

【问题讨论】:

【参考方案1】:

更新:对于 1.0.4 版,有相关的标志:--all-audio--all-subtitles。见this link

-a--subtitle 参数没有适用于所有轨道的选项,但多余的轨道会被忽略。因此,要从源中附加(几乎)所有包含的音轨和字幕,您只需列出比您期望在源中找到的更多的轨道。下面的 CLI 命令对我有用。

HandBrakeCLI.exe -i <Path>\Episode01.mkv -o <Path>\Episode01.mp4 --preset Normal 
--subtitle scan,1,2,3,4,5,6,7,8,9,10 -a 1,2,3,4,5,6,7,8,9,10

此 CLI 命令假定我的源文件不会超过 10 个字幕或音频文件。我知道我的不超过 4 个,所以我肯定会包括所有。

我总是使用--preset Normal 来转换我的视频。它适合我的个人需求,默认情况下与 HandBrake 一起提供:)。编码日志文件显示以下 CLI 命令。

CLI Query:  -i "<PATH>\Episode01.mkv" -t 1 --angle 1 -c 1-12 -o "<PATH>\Episode01.mp4"  
-f mp4  -4  -w 720 --loose-anamorphic  --modulus 2 -e x264 -q 20 --vfr -a 1,2 -E faac,faac 
-6 dpl2,dpl2 -R Auto,48 -B 160,160 -D 0,0 --gain 0,0 --audio-fallback ffac3 
--subtitle scan,1,2 --markers="<AppData>\Local\Temp\Episode010-1-chapters.csv" 
--x264-preset=veryfast  --x264-profile=main  --h264-level="4.0"  --verbose=1

此 CLI 命令包含必要的 -i(输入)和 -o(输出)参数,其余参数由 --preset Normal 定义

【讨论】:

【参考方案2】:

从 Handbrake 1.0.4 开始,--all-audio--all-subtitles 选项允许自动选择所有音频和字幕轨道。

这些可以通过传入一个语言列表来进一步细化以供选择(例如,--all-audio --audio-lang-list eng 将包括所有英语音轨)。

【讨论】:

感谢@mrtumns 提供的信息。如果您不介意,我会补充:)

以上是关于使用手刹通过命令行将包含所有字幕和音频的视频转换为 mp4的主要内容,如果未能解决你的问题,请参考以下文章

FFmpegffplay 播放视频命令 ( 播放 | 暂停 | 停止 | 音量控制 | 进度控制 | 音频流 / 视频流 / 字幕流 / 节目切换 )

python实现给视频添加字幕,并根据字幕添加语音

如何将一个H264视频,AAC音频,一个中文字幕,一个英文字幕,合成一个高清MP4中英双字幕的视频文件?

怎么把视频里的声音转换成文字

使用PowerShell和FFMPEG将音频和字幕源条带化并添加到INDEX.M3U8

华强买瓜-梵高星空限定版