如何将 AC3 6ch 音频转换为 HE-AAC?GUI 解决方案?

如何将 AC3 6ch 音频转换为 HE-AAC?GUI 解决方案?

我想将 MKV 文件的音轨转换为 HE-AAC (AAC+/AACplus)。音轨是 AC3。但似乎没有用于 HE-AAC 编码的 GUI?我只发现有一个命令行工具 (CLI)尼禄,但我不知道这是否可以做HE-AAC。

有什么帮助吗?有没有推荐一个可以将 AC3 转换为 HE-AAC 的 GUI?还应该能够处理环绕声(5.1/6 声道)。

答案1

Nero AAC 编码器使用方法

-heneroAacEnc 通过和参数支持 HE-AAC 和 HE-AAC v2 -hev2

从质量上来说,此编码器(仍然?)被认为是最好的编码器。Nero 免费提供此编码器,但不提供支持。处理 5.1 WAV 等大型文件时会遇到的一个问题是文件大小限制。这不是因为此编码器是残缺软件,而是因为程序如何处理大量数据。要解决这个问题,您需要使用另一个程序将输入传输到编码器并使用参数-ignorelength。如果您的输入格式已经是 WAV,则以下方法应该有效:

cat $myfile | neroAacEnc -q 0.5 -he -ignorelength -if - -of $myencodedfile

您还可以使用avconv(以前称为ffmpeg,现已分叉并且 CLI 工具已重命名)转换为 WAV。

avconv -i $myfile -f wav - | neroAacEnc -q 0.3 -he -ignorelength -if - -of $myencodedfile

请注意,生成的文件是 MP4,其中包含 MP4 容器中的 AAC 流,而不是原始 AAC 流。如果需要,您可以MP4Box从包中提取原始流。gpac

Nero AAC 质量设置

质量设置取决于您使用的配置文件。使用 LC-AAC,您可以达到-q 1.0。我认为 HE-ACC 限制为-q 0.5,而 HE-AAC v2 甚至更低。这是因为这些配置文件背后的技术以低比特率为中心。使用-q 0.5将导致文件比 DVD 中常见的 AC3 6ch 音频更大,使用-q 0.3将使文件大小减半。

有关多通道音频编解码器和质量选择的建议

情况(仍然?)真的很混乱,这就是为什么没有像手刹最高效的编解码器是 HE-AAC v2,但由于某些国家/地区的许可/专利问题,它在 Ubuntu 中得不到很好的支持。Vorbis 也不错,但效率较低。多通道映射应该在最新的 LTS 版本(12.04,10.04 中没有)中得到修复。除了 MP3,AC3 排在第三位。FLAC 在效率方面排名第四,并且是支持最多的无损格式。DTS 完全是松散的,也应该像 MP3 一样被排除在外。如果可以,请转换为 FLAC。

因此,如果您有 AC3 编码音频,并且设备和容器格式支持它,您可能会保留它。Android 支持的媒体格式图表可能会有帮助。

附录:neroAacEnc 帮助文件

Usage:
neroAacEnc [options] -if <input-file> -of <output-file>
Where:
<input-file>  : Path to source file to encode.
                The file must be in Microsoft WAV format and contain PCM data.
                Specify - to encode from stdin.
                Note that multiple input files can be specified, they will be
                encoded together into a single output file with chapter marks
                indicating source file divisions.
<output-file> : Path to output file to encode to, in MP4 format.

  ==== Available options: ====  

Quality/bitrate control:
-q <number>   : Enables "target quality" mode.
                <number> is a floating-point number in 0...1 range.
-br <number>  : Specifies "target bitrate" mode.
                <number> is target bitrate in bits per second.
-cbr <number> : Specifies "target bitrate (streaming)" mode.
                <number> is target bitrate in bits per second.
                When neither of above quality/bitrate options is used,
                the encoder defaults to equivalent of -q 0.5

Multipass encoding:
-2pass        : Enables two-pass encoding mode.
                Note that two-pass more requires a physical file as input,
                rather than stdin.
-2passperiod  : Overrides two-pass encoding bitrate averaging period, 
  <number>    : in milliseconds.
              : Specify zero to use least restrictive value possible (default).

Advanced features / troubleshooting:
-lc           : Forces use of LC AAC profile (HE features disabled).
-he           : Forces use of HE AAC profile (HEv2 features disabled).
-hev2         : Forces use of HEv2 AAC profile
                Note that the above switches (-lc, -he, -hev2) should not be
                used; optimal AAC profile is automatically determined from
                quality/bitrate settings when no override is specified.
-ignorelength : Ignores length signaled by WAV headers of input file.
                Useful for certain frontends using stdin.

答案2

恐怕命令行永远是这项工作的最佳选择。如果您的 FFmpeg 副本是使用 fdkaac 支持编译的,那么您可以从 mkv / ac3 文件生成高质量的高效 AAC 文件。

按如下方式测试您的 FFmpeg 副本:

andrew@ilium~$ ffmpeg -encoders -hide_banner | grep libfdk_aac
 A..... libfdk_aac           Fraunhofer FDK AAC (codec aac)
andrew@ilium~$

上面的例子表明我有可用的 fdkaac 编码器(A=Audio)。

下面给出了所需语法的两个示例,请注意,我只是复制来自原始文件的假定视频流:

1.AAC-HE 版本 1:

ffmpeg -i input.mkv \
       -c:v copy \
       -c:a libfdk_aac -profile:a aac_he \
       -b:a 64k -movflags +faststart \
       output.mkv

2.AAC-HE 版本2:

ffmpeg -i input.mkv \
       -c:v copy \
       -c:a libfdk_aac -profile:a aac_he_v2 \
       -b:a 32k -movflags +faststart \
       output.mkv

据我所知,没有一个 GUI 应用程序可以让你如此精细地控制你的命令行并允许你生成输出文件确切地正如您所希望的那样。

相关内容