1

尝试以相当通用的方式对视频进行编码,典型的调用将如下所示:

HandBrakeCLI --encoder-preset medium --encoder-level 4.1 --format av_mkv --encoder x264 --quality 21 --aencoder aac,ac3 --audio-copy-mask aac,ac3,dtshd,dts,mp3 -a 1,2 -s 0,1,2,3,4 -x threads=38 -i Input.mkv -o Output.mkv

问题是我想对音轨执行以下操作:

  • 如果有高比特率轨道(例如 dts)将其转换为 ac3
  • 如果有 aac 音轨重新编码(或复制)
  • 如果没有 aac 轨道和高比特率轨道,则创建 aac 轨道

本质上,我如何能够有条件地根据音轨选择要执行的操作,或者我是否需要进行某种预处理来识别我正在处理的音轨类型并以此为基础以编程方式更改命令?

4

1 回答 1

2

目前,在 Handbrake 中没有办法做你想做的事。

但如果没有它,你也许能够得到你想要的。从本质上讲,有一种繁琐的方法可以同时保留原始音轨并对其进行转码。

我目前正在做的是将第一首曲目转码为 AAC,并保留所有原始曲目。(最初编码的第一个轨道变成轨道 2,依此类推。)

例如,这是我的音频选项:

--all-subtitles --audio 1,1,2,3,4,5,6,7,8,9,10,11 --aencoder ca_aac,copy,copy,copy,copy,copy,copy,copy,copy,copy,copy,copy --mixdown dpl2,7point1,7point1,7point1,7point1,7point1,7point1,7point1,7point1,7point1,7point1,7point1 --audio-copy-mask aac,ac3,eac3,truehd,dts,dtshd --audio-fallback aac

我将第一首曲目列出两次,然后在编码器中按照该模式进行混音。(我不关心 mp3 或 flaac。)

结果,对我来说,第一首曲目始终与我的旧电视兼容,但如果我想要原始音轨,我可以在播放视频时切换曲目。

于 2019-09-27T01:09:18.990 回答