事情总会忘记,还是记下来比较好。

最近高清电影转 WMV-HD 的工程进行得差不多了,看到还有一个《Big Buck Bunny》没有处理,随手拖进 Expression Encoder 2。等视频压好之后发现,这部片用的是 MOV 封装(“艺术”的格式),音频是 AAC 5.1。这下可麻烦了。

Google 了一下,貌似 Yamb + MP4Box 可以 demux mov。但是实际上只能 demux 出 AVC 视频,对 AAC 5.1 完全无效。

转了好多地方,后来意外发现 MP4Box 作者的主页上有一个 mpeg4ip tools 工具集,其中包括很多使用的小程序。

首先,用 mp4info.exe 看一下 mov 内部各轨 ID。

mp4info.exe big_buck_bunny_1080p_h264.mov
  1. Track   Type    Info  
  2. 1       video   H264 Main@4.1, 596.458 secs, 9283 kbps, 1920x1080 @ 24.000013 fps  
  3. 2       tmcd  
  4. 3       audio   MPEG-4 AAC LC, 596.480 secs, 438 kbps, 48000 Hz  

可以看到 Track 1 是视频轨,Track 3 是音频轨。

接下来,用 mp4creator.exe 分离音频轨。(不要被文件名迷惑了)

mp4creator.exe big_buck_bunny_1080p_h264.mov -extract=3

然后再用 AAC Decoder Demo 解码成为多音轨 WAV。很简单,选好 InFile 和 OutFile 之后按 Decode 就可以了。

大小: 31.88 K 尺寸: 400 x 268 浏览: 2 次点击打开新窗口浏览全图

拿到多音轨 WAV 之后可以用 eac3to 来分离各音轨。

eac3to.exe bbb.wav bbb.wavs -resampleTo48000 -quality=4
  1. WAV, 5.1 channels, 0:09:56, 24 bits, 48khz  
  2. Reading WAV...  
  3. Writing WAVs...  
  4. Creating file "E:\BTDownload\bbb.L.wav"...  
  5. Creating file "E:\BTDownload\bbb.R.wav"...  
  6. Creating file "E:\BTDownload\bbb.LFE.wav"...  
  7. Creating file "E:\BTDownload\bbb.SL.wav"...  
  8. Creating file "E:\BTDownload\bbb.SR.wav"...  
  9. Creating file "E:\BTDownload\bbb.C.wav"...  
  10. eac3to processing took 55 seconds.  
  11. Done.  

拿到 6 个独立 WAV 音轨就可以转 WMA 5.1 了。

总结:AAC 5.1 转 WMA 5.1 比较麻烦,遇到 MOV 封装更麻烦。好在网络上工具不少,总有一款能满足需要。