最近一直在研究 XBOX360 的媒体应用,WMV-HD 是重点。但是在尝试了若干次后,无论是视频转换还是音频转换都不成功。后来终于找到音频方面的问题,先记录一下。
手上的音频源都是 DTS / AC3 / DD-Plus / DTS-HD 等等格式,基本上都是 5.1 声道音频。转换软件是微软自家的 Windows Media Encoder 9 Series + WMP 11 Codecs。
音频转换总是在 VBR 进行到 2-pass 的时候报错,错误代码 0xC00D0BC3(General audio error)。按照微软官方的解释,这是由于音频数据在 2-pass 的时候改变,造成编码器无法工作,建议改成 1-pass 编码(CBR / Quanlity VBR)。
个人认为,1-pass 的质量总不如 2-pass 的质量好,在翻看了若干文档之后,发现 Windows Media 网站上提到了用未压缩格式作为音频源进行编码。随后又找到了 WMWiki。按照 WMWiki 上面的方法,用 DVD2WMV Assistant + BeSweet将 AC3 转成了 6 个单独的 WAV 文件(分别对应 6 个声道),然后再将 6 个 WAV 导入 Windows Media Encoder 编码成功。(DTS 音轨转换需要 Tranzcode)
个人分析,AC3 在解码的时候会根据环境变化在不同的声道上添加增益,也就是所谓的 Dynamic Compression,因此造成两次解码数据不同。而对于 WAV,两次读取数据完全一致。看来 Windows Media Encoder 在处理视频/音频输入方面还是存在缺陷。有能力的话试一下 Expression Encoder 吧。
参考资料:
1. Converting AC3 to Multiple WAVs
2. Converting to WMV9
3. Converting DTA to WMA
4. Windows Media 编码器 9 系列常见问题解答
[…] 4 个 wav 后,就可以继续按照 5.1 声道 WMA 的制作方法继续制作 XBOX360 用 […]
[…] 好消息!在音频设置里面终于出现了“5.1”选项!暂时还没试验效果怎么样,也不知道是不是还会出现之前的“音频已改变”错误(参见:制作 5.1 声道 WMA 音轨)。 […]
[…] 6 个独立 WAV 音轨就可以转 WMA 5.1 […]