1. 命令行语法
根据输入源 (1. 单独的音频或视频文件 2. 已用容器封装好的文件 3. 碟片目录) 分为3类
1.1 使用单独的音频或者视频文件作为输入源
在这个类别里我们处理例如单独的音频文件 ( AC3, TrueHD, DTS-HD, WAV 等 ) 或者单独的视频文件 ( raw H.264, VC-1, MPEG-2 ) 的输入源。在这种情况下命令应该长这个样子:
eac3to input.file+input.file.2 output.file -options
- input.file ~ 它是被处理的文件。eac3to能接受各种音频格式例如 RAW, (L)PCM, WAV (PCM only), W64 ( 类似于没有4GB限制的WAV ), RF64 (类似 W64), AC3, E-AC3, DTS, DTS-ES, DTS-96/24, DTS-HD Hi-Res, DTS-HD Master Audio, MLP, TrueHD, TrueHD/AC3, FLAC, 视频格式例如 VC-1, H.264, MPEG-2
- +input.file.2 ~ 多个输入源 (同一格式) 是被接受的。当预处理的文件被拆分成好几部分时非常有用。使用 + 符号进行连接
- output.file ~ 这是eac3to将创建的输出文件。它可能是音频格式例如 RAW, (L)PCM, WAV (PCM only), WAVs ( 多个单声道 WAV files, PCM only ), W64, RF64, AC3, DTS, FLAC, 视频格式例如 VC-1, H.264, MPEG-2 或者 Matroska (MKV) 容器. eac3to 也可以 ( 仅 ) 将音频数据标准输出 (stdout) 以供其他程序进一步处理
- -options ~ 这里你能设定 eac3to 的操作选项。并不是所有选项都适用于所有输入/输出格式。如果你没设定选项,就会走默认设置。当你输入单独的音频/视频时,以下选项可用 (已删除不常用的代码) :
选项 | 输入源必须是 | 输出文件必须是 | 用于 |
---|---|---|---|
-192, -224, -384, -448, -640 | 任何格式 | AC3 | 设定 AC3 编码的码率为 192-640 ( 448 默认用于 立体声,640 默认用于 5.1 声道 ) |
-768, -1536 | 任何格式 | DTS | 设定 DTS 编码的码率为 768 或者 1536 (默认数值) |
-core | DTS-HD 或者 TrueHD | DTS 或者 AC3 | 提取 DTS-HD 的 DTS 核心 或者 TrueHD 的 AC3 核心 |
±100ms | 任何格式 | 任何格式 | 应用正负延迟 |
-mono | 任何格式 | 任何格式 | 立体声音频只解码左声道,多声道音频只解码中央声道 |
-double7 | 任何 6.1 声道的音频 | 任何格式 | 将 6.1 声道上混至 7.1 声道 (复制一条 Back Center声道) |
-down6 | 任何 6.1 或者 7.1 声道的音频 | 任何格式 | 将 7 个或者 8 个声道 下混至 6 个声道 |
-downDpl | 任何格式 | 任何格式 | 将任何多声道音频下混至立体声 ( Dolby Pro Logic II ) |
-downStereo | 任何格式 | 任何格式 | 将任何多声道音频下混至立体声 |
-mixlfe | 任意 x.1 声道 | 任何格式 | 进行下混至立体声时也把 LFE 声道混进去 |
-down16 | 任何格式 | 任何格式 | 将解码后的音频数据降为 14-23 bit |
-full | 任何格式 | 任何格式 | 将结果以 64-bit 浮点 PCM 格式输出 |
-changeTo24.000 | 任何格式 | 任何格式 | 将源文件的帧率转换为 "23.976", "24.000", "25.000"... |
-resampleTo48000 | 任何格式 | 任何格式 | 重采样音频至 "44100" Hz, "48000" Hz, "88200" Hz 或者 "96000" Hz |
-r8brain | 任何格式 | 任何格式 | 使用 r8brain 进行重采样而不是默认的 SSRC |
-quality=0.35 | 任何格式 | m4a / mp4 | 指定 Nero AAC 编码质量 ( 0.00=最低; 1.00=最高; 默认 0.5 ) |
-8 | LPCM / RAW | 任何格式 | 手动指定输入的 LPCM / RAW 文件的声道数 |
-16 / -24 | LPCM / RAW | 任何格式 | 手动指定输入的 LPCM / RAW 文件的 bit |
-48000 | LPCM / RAW | 任何格式 | 手动指定输入的 LPCM / RAW 文件的采样率 |
-override | LPCM / RAW | 任何格式 | 用手动指定的 LPCM / RAW 的值强制覆盖自动检测 |
-logdts | DTS | 显示 DTS 音轨的详细信息 | |
-progressnumbers | 给处理进程增加一个进度条显示 | ||
-log="filename.txt" | 保存日志为 "filename.txt" | ||
-shutdown | 处理完以后自动关机 |
示例
- 使用 Nero AC3 解码器 (默认) 和 Aften AC3 编码器将一个 AC3 音轨转码成 384 kbps:
eac3to input.ac3 output.ac3 -384
- 使用 Nero AC3 解码器 (默认) 和 Surcode DTS 编码器将一个 E-AC3 音轨转码成 1536 kbps 的DTS:
eac3to input.eac3 output.dts
- 使用 ArcSoft DTS-HD 解码器 (默认) 和 FLAC 编码器将一个 DTS-HA MA 音轨转码成 FLAC:
eac3to input.dtshd output.flac
- 使用 libav 编码器将一个 DTS 音轨转换成 AC3:
eac3to input.dts output.ac3 -libav
- 使用 Nero TrueHD 解码器 and Aften AC3 编码器将一个 TrueHD 音轨转码成 640 kbps 的 AC3:
eac3to input.thd output.ac3 -nero
- 使用 MLP libav / ffmpeg 解码器 (默认) 解码一个 24bit / 96 kHz 的 MLP 音轨,下采样至 16bit / 44.1 kHz 并将数据标准输出:
eac3to input.mlp output.stdout -down16 -resampleTo44100
- 提取 DTS-HD 音轨的 DTS 核心:
eac3to input.dtshd output.dts -core
- 提取 TrueHD 音轨的 AC3 核心:
eac3to input.thd output.ac3 -core
- 将一条 E-AC3 音轨延迟 +178ms:
eac3to input.eac3 output.eac3 +178ms
- 将一条 16 bit / 48 kHz 5.1 声道的 LPCM 音轨分流成 6 条单独的 WAV 音轨,且让 eac3to 自动检测其参数:
eac3to input.pcm output.wavs
- 将一条 16 bit / 48 kHz 5.1 声道的 LPCM 音轨分流成 6 条单独的 WAV 音轨,且手动指定其参数:
eac3to input.pcm output.wavs -override -16 -48000 -6
- 使用 Aften AC3 编码器将一条 BD 的 7.1 声道的 PCM 音轨转码成 5.1 声道 640 kbps 的 AC3:
eac3to input.pcm output.ac3 -down6
- 将 H.264 文件封装成 MKV:
eac3to input.h264 output.mkv
1.2 使用已用容器封装好的文件作为输入源
这些文件包含一条或多条音视频轨道。通过输入这类文件,eac3to 可以列出里面的所有轨道并编号。这样的话用户能明确地指定需要处理的轨道。 eac3to 命令长这个样子:
eac3to input.file+input.file.2 trackno: output.file -options trackno: output.file -options
- input.file ~ 支持 evo, m2ts, ts, vob, mkv, mpls 等格式
- +input.file.2 ~ 同 1.1,用 + 连接多个分离的文件 ( 比如 DVD 里分离的 VOB ,BD 里分离的 m2ts )。对于 BD 也能直接输入 mpls 文件
- output.file ~ 同 1.1
- trackno: ~ 就是上面说的eac3to给每个轨道的编号
- -options ~ 同 1.1
选项 | 输入源必须是 | 输出文件必须是 | 用于 |
---|---|---|---|
-demux | 任何容器 ( EVO, VOB, M2TS, TS... ) 文件 | 分流输入源的第一条视频轨道以及所有音频和字幕轨道 | |
filename.txt | 任何带有章节的容器 ( EVO, VOB, M2TS, TS... ) 文件 | 提取章节 |
为了展示用法,我们使用 HD-DVD 中的两个 EVO 文件作为示范:
eac3to FEATURE_1.EVO+FEATURE_2.EVO
我们将会得到这样一个列表:
EVO, 1 video track, 3 audio tracks, 5 subtitle tracks, 1:55:33
1: Joined EVO file
2: h264/AVC, 1080p24 /1.001 (16:9) with pulldown flags
3: E-AC3, 5.1 channels, 1536kbps, 48khz, dialnorm: -27 dB, -65ms
4: E-AC3, 5.1 channels, 768kbps, 48khz, dialnorm: -27 dB, -76ms
5: AC3, 2.0 channels, 192kbps, 48khz, dialnorm: -27 dB, -92ms
6: Subtitle
7: Subtitle
8: Subtitle
9: Subtitle
10: Subtitle
我们能从上表中获取输入源包含的所有轨道信息以及 eac3to 给它们的编号,接下来使用对应编号就能处理对应的轨道
- 分流上述例子里的第一条视频和所有音频,字幕轨道
eac3to feature1.evo+feature2.evo -demux
- 分流一张 BD 里的 主视频 00001.m2ts 的视频轨道 ( 编号为2 ) :
eac3to 00001.m2ts 2: video.h264
- 分流一张 BD 里的 3个分离的m2ts文件 ( 00001.m2ts, 00002.m2ts 以及 00003.m2ts ) 的视频轨 ( 编号为 2 ), TrueHD 音频轨 ( 编号为 3 ), 以及 E-AC3 音频轨 ( 编号为 5 ) :
eac3to 00001.m2ts+00002.m2ts+00003.m2ts 2: video.vc1 3: audio1.thd 5: audio2.eac3
- 封装一张 BD 里的 主视频 00001.m2ts 单独的视频轨 ( 编号为 2 ) 为 MKV, 并将 DTS-HD ( 编号为 4 ) 音频转换成 FLAC
eac3to 00001.m2ts 2: video.mkv 4: audio.flac
- 封装一张 BD 里的 主视频 00001.m2ts 单独的视频轨 ( 编号为 2 ) 为 MKV, 将 DTS-HD ( 编号为 4 ) 音频转换成 FLAC 并转换为 16 bit, 并使用 libav / ffmpeg E-AC3 解码器 将 E-AC3 音频 ( 编号为 5 ) 转码成 768 kbps 的 DTS
eac3to 00001.m2ts 2: video.mkv 4: audio1.flac -down16 5: audio2.dts -768 -libav
1.3 使用碟片目录作为输入源
碟片可以是 HD-DVD 或者 BD, 这里以 BD “Nobody knows” 为例:
第1步:
eac3to "BD目录"
这个时候可能 eac3to 会报错,有可能是你的文件没下完整,或者结构本身不完整。前者需要自行重新下载,后者的话使用压缩包的VBS文件来补齐目录即可。
第2步:
这个时候可能出现多个选项,一般情况下选择时间最长的那个。不过有时候也不一定是最长的那个,这个时候你最好去BDMV / STREAM 目录下确定正片是哪个m2ts,然后看看对应的m2ts是哪个序号。看准前面的序号后,再次输入
eac3to "BD目录" 序号
第3步:
按照 1.2 中的写法即可
本文大量翻译自 wikibooks ,同时也主观的修改和添加了一些内容。