AVC/H.264/AAC 专题 - 软件篇(转)
AVC/H.264/AAC 专题 - 软件篇 |
I) MPEG-4 part 10 AVC /H.264 ==================================================== 1) AVC 编码器 (Encoder) 目前主要有两个编码: NeroDigital Recode 2 和 x264. ------------------------------------------------------------------------------------------------ a) NeroDigital Recode 2 Nero 招牌下的 NeroDigital Recode 2 包含了相对很成熟的 H.264 Codec, 输出 .mp4. 目前推荐使用 Recode 2 来编码您打算长久保存的视频. http 下载页面 (Update-Package 2) 或者官方 ftp (NVE*****.exe) : ftp://ftp4.us.nero.com ,ftp://ftp6.us.nero.com 安装后, 由于并不是 vfw 编码, 所以需要运行其 Nero Recode, 选择 Recode DVDs and Videos to Nero Digtial. 之后的界面很直接. ------------------------------------------------------------------------------------------------ b) x264 x264 是 GPL 下的开源 AVC 编码, 希望能像 XviD 一样被发扬光大. i) 您可以下载 源码 自行编译. 其包含 vfw, 下载安装后(右键点击 .inf, 选择安装), 可以在 virtualdub/virtualdubmod/aviutl 和其他各种可以使用 vfw 编码的软件里使用. 暂时不包含 dshow 解码. ii) Celtic Druid's , Doom9 x264 win32 daily builds, 或者 bob0r's 有频繁更新的 builds. 目前 x264 bvop 还不完善, 正如其名暗示, x264 还在试验阶段, 请暂时仅用于测试. 附带说一下, 注意看看 x264 官方网页的介绍: ======================================================== 2) 播放 (Playback) 成功的播放需要一个 Splitter 将视频/音频/字幕和其他数据流分开 (split); 然后将各自的数据流送于相应的解码器 (decoder) 进行解码, 输出给播放设备(显示器/扬声器). ------------------------------------------------------------------------------------------------ a) Splitter 谈到 Splitter 就必须要谈一谈两个 container ---- .mp4 和 .mkv. i) .mp4 是 MPEG4 AVC 唯一符合官方标准的 container, 这意味着如果打算在硬件上播放 AVC 压缩的视频,必须要存放在 .mp4 才能被顺利解码. 由于 .mp4 的官方性, 是兼容性的最佳选择(尤其打算在硬件播放器上播放). 电脑上很多播放器早已成功支持 .mp4, 比如 Media Player Classic, BSPlayer, ZoomPlayer . ii) .mkv 是很优秀的 container, 不多提了大家都知道 ^^. 但是, 正如目前官方最新的 MPC 也没支持包含 AVC 流的 mkv splitter, mkv 的兼容性还有待提高. 官方 MPC 自带 mkv splitter, 但目前无法正确 split 含有 AVC 的 mkv. 播放存放在 mkv 里的 AVC 目前需要 Haali 最新的 Matroska Splitter 安装的时候会提示需不需要禁止 MPC 自带的 mkv splitter, 我这里即使选择了也没起到作用, 需要手动禁止 (MPC 里 view ---> options ---> filters ---> 取消 Source Files 里 matroska 的勾. 由于官方 MPC 暂不支持 AVC mkv splitter, 而额外安装 haali 的 splitter 稍显麻烦, 所以推荐使用 a) cynix 小朋友整合了 haali splitter 的 MPC. 或 b) MPlayer 见 c) 播放器 (player) ------------------------------------------------------------------------------------------------------ b) 解码器 (Decoder) 解码器已经出来很多了, Moonlight, VideoLan, 3ivx, Nero, 和极其推荐的 ffmpeg 的 ffdshow. 这里就只给出 ffdshow 咯, 您需要 ffdshow 20050122 及更新的 build. 官方 ffdshow 稳定 build 暂时还不能解码 AVC. 您可以下载最新 cvs 源码自行编译. ------------------------------------------------------------------------------------------------------ c) 播放器 (player) 其实有了 splitter, dshow decoder, 所有基于 dshow 的播放器都该成功播放, 尽管如此, 这里还是要推荐 cynix 编译的 MPC, 或者并不基于 dshow 但非常出色的的 MPlayer, 您可以不必另外安装 splitter, MPlayer 甚至自带 AVC 解码 ^^. i) Media Player Classic (MPC) - cynix's build. cynix 同学 的 最新 build 更新了 mkv splitter, 可以不需要安装 haali 的 splitter 了, 非常方便, 推荐使用 ^^, 请前往 cynix 老巢下载 2005-01-26 或之后的 MPC build. ps. 如果您想得到官方的源码和 build, 请前往 MPC 官方网页 (上面提到, 目前官方的 build 无法自己支持 AVC mkv, 您需要 haali's mkv splitter 才行). ii) MPlayer II) AAC
AAC 是 Advanced Audio Coding 的缩写, 是 MP1/2 Audio 的下一代有损音频编码, 并且是 MPEG-4 该使用的音频编码, 能完善存放于 .mp4 container 中. ========================================================== I) AAC 编码器 1) FAAC - Free Advanced Audio Coder, 免费的开源 AAC 编码 下载页面: Source (AudioCoding.com) , build (from RareWares) & Fontends: BonkEnc,Besweet & BesweetGUI 2) NeroDigital 也含有相当好的 AAC 编码器. 3) Foobar2000 的 DiskWritter 也包含 AAC 编码. ========================================================== II) AAC 解码 1) Media Player Classic 自带 AAC 解码, 个人推荐 MPC, 其他很多播放器也应该对 AAC 有支持 2) 也可以尝试另一开源 dshow aac 解码 CoreAAC 下载页面: CVS & build III) Mux/Demux
各自编码好的 AVC/AAC/字幕 流等需要 mux 进 container 中. 有时也需要将它们 demux 出来. 如果 container 是 a) .mp4 mp4muxer 可以 mux AVC.mp4 和 AAC, 生成.mp4. GUI 默認語言是德語, 但支持英語, 很 handy 的工具 . mp4muxer 是 mpeg4ip 和 mp4box 的 frontend, 所以您需要 mpeg4ip-tools 中的 mp4creator 和 GPAC framework 中的 mp4box. 二者在 mp4muxer 主頁有下載, 或者參見下面附件. ======================================================== b) .mkv 支持 AVC/ACC 的 mux 进 mkv 目前似乎只有mkvtoolnix (1.4 或更新). 其中包含了很多工具, mme是 mkvmerge 专门负责 mux (merge). 您可能会需要很多 dll, 请下载此頁面中的 mkvtoolnix-runtime.rar |