Eac3to

出自NMM Doc
於 2010年9月18日 (六) 22:26 由 Lititude對話 | 貢獻 所做的修訂
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
跳至導覽 跳至搜尋

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都列在他的帖子裏了:


參考資料