Eac3to

来自NMM Doc
跳到导航 跳到搜索

eac3to是一个免费音频转换工具,主要可以用来方便的处理BD。作者是madshi

doom9讨论帖里,作者madshi会很友好地回答每个问题的。请不要怕,勇敢的发问吧,当然前提是用英语问他。

下载: http://madshi.net/eac3to.zip

配合工具:

把NeroAACEnc的可执行文件放在eac3to的目录里即可被调用。TMT则需要安装,如果安装好了还是没法调用,参考这里和madshi给的信息。安装mkvtoolnix或Haali分离器后,可以把视频封装成mkv。

eac3to可以显示BD主要播放列表的结构,显示mkv、(m2)ts、VOB、EVO等文件的信息。 也可以解码/编码很多种音频。也可以抽出AC3、E-AC3、DTS(HD/MA)、TrueHD等音轨,或抽出TrueHD的AC3核心。也可以抽出BD的章节文件信息,把MPEG2、AVC、VC-1视频封成Matroska文件。还能干很多事,同时也在不断的添加新功能。

命令

eac3to是一个命令行工具,和[x264]等一样。命令很简单和人性化。 一般性用法:

>eac3to sourcefile[+sourcefile2] [trackno:] [destfile|stdout] [-options]
  • sourcefile是源文件,只要eac3to支持。sourcefile+sourcefile2是把两个文件按照顺序接在一起,可以用于处理BD中分开的m2ts。
  • trackno: destifile -option是对特定轨道号以option指定的方式进行处理,输出文件destifile。option对于之前的destifile起作用。可以一次性以不同的方式处理不同的轨道输出多个文件,像这样trackno1: destifle1 -option1 trackno2: destifile2 -option2。eac3to会根据destifile的扩展名选择编码。


不加选项和输入文件执行eac3to,会返回帮助。


用法举例

下面以处理CLANNAD的BDMV第一卷为例。

此BDMV文件夹位于"G:\CLANNAD\BDMV\",BD的树形目录如下:

G:.
├─BDMV
│  ├─BACKUP
│  │  ├─CLIPINF
│  │  └─PLAYLIST
│  ├─CLIPINF
│  ├─PLAYLIST
│  └─STREAM
└─CERTIFICATE
    └─BACKUP 
  • 查看BD信息
>eac3to "G:\CLANNAD\BDMV\"
1) 00000.mpls, 2:01:30
  [0+1+2+3+4+8].m2ts  - Chapters, 30   chapters
  - h264/AVC, 1080p24 /1.001 (16:9)
  - RAW/PCM, Japanese, multi-channel, 48kHz
  - DTS Master Audio, Japanese, multi-channel, 48kHz
  - RAW/PCM, Japanese, stereo, 48kHz 
直接执行eac3to,什么参数都不加,直接输出BD的章节、音频等信息。


  • 查看章节文件
>eac3to.exe 00000.mpls
1) 00000.mpls, 2:01:30
  [0+1+2+3+4+8].m2ts
  - Chapters, 30 chapters
  - h264/AVC, 1080p24 /1.001 (16:9)
  - RAW/PCM, Japanese, multi-channel, 48kHz
  - DTS Master Audio, Japanese, multi-channel, 48kHz
  - RAW/PCM, Japanese, stereo, 48kHz 
和上面的基本一样。查看播放列表是看不到有没有字幕的。


  • 抽出章节文件

cd到"G:\CLANNAD\BDMV\STREAM\"

>eac3to ..\PLAYLIST\00000.mpls chap01.txt
"chap01.txt"会被写入"G:\CLANNAD\BDMV\STREAM\"文件夹。
chap01.txt里有30个章节,时间是从0000.m2ts到00004.m2ts按顺序排下来的。可以用VempX的章节时间计算工具处理这个章节文件。


  • 查看00000.m2ts的信息
>eac3to 00000.m2ts
M2TS, 1 video track, 3 audio tracks, 2 subtitle tracks, 0:24:12, 24p /1.001
1: h264/AVC, 1080p24 /1.001 (16:9)
2: RAW/PCM, Japanese, 5.1 channels, 16 bits, 48kHz
3: DTS Master Audio, Japanese, 5.1 channels, 16 bits, 48kHz
   (core: DTS, 5.1 channels, 16 bits, 1509kbps, 48kHz)
4: RAW/PCM, Japanese, 2.0 channels, 16 bits, 48kHz
5: Subtitle (PGS), Japanese
6: Subtitle (PGS), English
eac3to告诉我们,这个文件有视频轨1条,音频轨3条,字幕轨两条,在下面显示出了具体的信息:
  1. 1号视频轨AVC编码,分辨率1080p,帧率24000/1001,比例16/9。
  2. 2号音频轨是PCM(可以认为是wav),语言日语,声道5.1,深度16bits,频率48kHz。
  3. 3号音频轨DTS-MA,语言日语,声道5.1,深度16bits,频率48kHz。同时带了DTS core,同样也是声道5.1,深度16bits,频率48kHz,但码率是1509kbps。
  4. 4号音频轨是PCM,语言日语,声道2.0,深度16bits,频率48kHz。
  5. 5号字幕轨是PGS字幕,语言日语。
  6. 6号字幕轨是PGS字幕,语言英语。
知道了文件信息后,就可以针对不同的轨道进行处理了。


  • 将5.1声道的PCM编码成无损的FLAC:
>eac3to 00000.m2ts 2: audio_1.flac
在经过一段时间后,会编码出audio_1.flac。


  • 直接抽出DTS-MA:
>eac3to 00000.m2ts 3: audio_2.dtsma
eac3to可以同时操作多条轨道
  • 以640kbps把5.1的PCM压成AC3,从DTS-MA抽出DTS-core,以quality=0.5把2.0的PCM压成AAC,把2.0的PCM压成FLAC,并且抽出日语字幕:
>ea3to 00000.m2ts 2: audio_3.ac3 -640 3: audio_4.dts -core 4: audio_5.m4a -quality=0.5 4: audio_6.flac 5: sub_1.sup
可以一次都做完。


尽管CLANNAD的BD是一个很好很典型的例子,但也有一定局限性。如果BD里有TrueHD音轨,可以抽TrueHD的AC3核心。假设00000.m2ts的第二条轨道是TrueHD。

>eac3to 00000.m2ts 2: auido_c.ac3 
  • 更多用法
eac3to source.pcm destination.flac
eac3to source.thd destination.flac destination.ac3
eac3to source.evo 1: chapters.txt 2: video.mkv 3: audio.flac 5: subtitle.sup
eac3to feature_1.evo+feature_2.evo movie.mkv
eac3to blurayMovieFolder movie.mkv

其他

解码器

ffmpeg/lavc(eac3to已经内置)可以正确的处理各种音频,除了6.1和7.1声道的DTS(HD)和(E-)AC3。6.1和7.1声道的DTS(HD)需要用ArcSoft的解码器解码,而且ffmpeg/lavc似乎会无视DTS-HD的HD部分。但是现在用7.1声道DTS的动画还没出现过,用6.1声道DTS-HD的EVA2.22里也有同等质量的替代音轨。(E-)AC3方面,madshi推荐用Nero的解码器解码,事实上ffmpeg/lavc完全可以胜任5.1声道以下的解码任务。 因此eac3to内置的ffmpeg/lavc完全能够满足普通需求。

如果不巧碰到高级音轨了,就尽情折腾吧:)


GUI

madshi并没有为eac3to写GUI,但有热心人写了GUI,madshi都列在他的帖子里了:


参考资料