Flash Player 9.0.115发布了,q是一个支?a class="st_tag internal_tag" title="标签 H.264 下的日志" >H.264的正式版本。关?a class="st_tag internal_tag" title="标签 H.264 下的日志" >H.264Q已l说得太多,播放H.264的视频也很简单,用NetStream卛_Q也是播放FLV的那一套,想了解的可以?a title="xploring Flash Player support for high-definition H.264 video and AAC audio" target="_blank">q篇官方提供的教E?/a>Q,但是怎么把现有的视频压羃成Flash Player支持?a class="st_tag internal_tag" title="标签 H.264 下的日志" >H.264格式呢?
首先Q要了解Flash Player 9.0.115对视频编码到底支持到哪个E度?/h3>
下面是Adobe官方提供的一个Flash Player支持的视频编码列表(原文Q:
视频~码 | SWF 文g格式版本(发布的版? | 支持播放的最Flash Player版本 |
Sorenson Spark | 6 | 6 |
On2 VP6 | 6 | 8 |
H.264 (MPEG-4 Part 10) | 9 | 9.0.115.0* |
音频~码 | SWF 文g格式版本(发布的版? | 支持播放的最Flash Player版本 |
ADPCM | 6 | 6 |
MP3 | 6 | 6 |
HE-AAC (MPEG-4 Part 3) | 9 | 9.0.115.0* |
*Flash Player 可以播放视频~码?a class="st_tag internal_tag" title="标签 H.264 下的日志" >H.264Q音频编码ؓAAC的标准MPEG-4文g。文件的扩展名可以是QF4V, MP4, M4A, MOV, MP4V, 3GP, 3G2{等?/p>
注意Q如果没有特别说明,下面的Flash Player都指Flash Player 9(v 9.0.115.0)
Flash Player 9 (v 9.0.115.0) 支持下面?MPEG-4 标准的子集:
MPEG-4 标准 | Flash Player Update 3 |
ISO/IEC 14496-3 (Audio AAC) | AAC Main; AAC LC; SBR |
ISO/IEC 14496-10 (Video AVC) | Base (BP); Main (MP); High (HiP). All levels are supported. |
ISO/IEC 14496-12 (Container) | 1 Audio track; 1 Video track |
3GPP TS 26.245 (Timed text format) | Full support. |
那么Q什么是H.264Q?#8220;MPEG4 Part 10”是什么?它和“Part 3”?#8220;Part 2” 有什么关p?可以?a title="MPEG4遭遇尬 三款高清晰编码大比拼" target="_blank">q篇文章?/p>
单的ԌH.264、MPEG4 Part 10、MPEG4 AVC和ISO/IEC 14496-10 都是一个东东,是一U视频编码格式,同时也是高清?sh)媄采用的视频编码格式之一Q另外两U是MPEG2和VC-1Q?/p>
而^常我们熟(zhn)的DivX以及XviD~码Q都属于MPEG4标准的范_但它们属于MPEG4 Part 2QFlash Player是不支持它们的?/p>
了解了基知识之后Q我们首先需要找C个编码工兗?/h3>
选择一个优U的压~工兯关重要。Flash CS3自带的用于压~?a class="st_tag internal_tag" title="标签 FLV 下的日志" >FLV的压~器自然是无法胜M。可是网上的视频转换工具多如牛毛Q要找一Ƒ֥用的真的很难。本着“免费、易用、专业、通吃”q四个标准,l过大量试Q终于找Cƾ优U的国产编码Y?a title="影音转码宝盒" target="_blank">MediaCoderQ中文名Q媄韌{码宝盒)Q以下是来自MediaCoder官方|站的介l:
MediaCoder是一个免费的通用音频/视频扚w转码工具Q它?yu)众多来自开源社区的优秀音频视频~解码器和工h合ؓ一个通用的解x案,可以音频、视频文件在各种格式之间q行转换?/p>
功能和特?/strong>
- Z优秀的众多的开源编解码后台Q能够解码和~码的格式多
- 极ؓ丰富的可调整的编码参?
- 全部~解码器自带Q不依赖于系l的~解码器和Q何组?
- 良好的可扩展的程序架构,快速适应新的需求,不断增加新的格式的支?
- 利用脚本语言扩展的界面,有支持众多媄韌备(?a target="_blank">PSP?a target="_blank">iPodQ的专用界面
- 高性能Q特别在双核处理器上表现优异
典型应用
- 提高影音文g压羃率,减小其文件尺?
- 转换臛_在各U媄韌备上播放的媄xӞ如MP3播放器、MP4播放器、手机、PDA、VCD/DVD播放?
- 提取视频文g中的韌q{换成MP3?a class="st_tag internal_tag" title="标签 AAC 下的日志" >AAC、WMA{音频文?
- 修复和改善一些损坏的、部分下载的或质量不佳的影音文g
支持格式
- MP3, Vorbis, AAC, AAC+, AAC+v2, MusePack, Speex, AMR, WMA, RealAudio, mp3PRO*
- FLAC, WavPack, Monkey’s Audio, OptimFrog, AAC Lossless, WMA Lossless, WAV/PCM
- H.264, Xvid, MPEG 1/2/4, Theora, Flash Video, Dirac, 3ivx*, RealVideo*, Windows Media Video
- AVI, MPEG/VOB, Matroska, MP4, RealMedia*, ASF, Quicktime*, OGM*
- CD, VCD, DVD, CUE Sheet*
*仅支持输?/em>
~码工具搞定Q接着可?#8220;制作”q了?/h3>
我采用的源片是著名的Backkom Assa Game Contest片段Q片源编码如下:
G:\Movie\Backkom\Assa Game Contest.wmv
General
Complete name : G:\Movie\Backkom\Assa Game Contest.wmv
Format : Windows Media
File size : 1.89 MiB
PlayTime : 33s 991ms
Bit rate : 467 Kbps
Movie name : Assa
Performer : Aaron Lim
Copyright : rg animation studios
Comment : rg animation studios
Video
Codec : WMV3
Codec/Info : Windows Media Video 9
Bit rate : 408 Kbps
Width : 320 pixels
Height : 240 pixels
Aspect ratio : 4/3
Audio
Codec : WMA2
Codec/Info : Windows Media Audio 2
Bit rate : 48 Kbps
Channel(s) : 2 channels
Sampling rate : 44 KHz
在压~前Q最重要的就是在MediaCoder中选择视频~码和音频编码。根据上面的表格我们知道QFlash Player 9.0.115支持H.264视频~码和HE-AAC音频~码。下图是我在MediaCoder中的讄?/p>
H.264视频讄
HE-AAC音频讄
视频大小讄
这三个讄调整好即可?a class="st_tag internal_tag" title="标签 H.264 下的日志" >H.264的编码优于WMV9Q所以在压羃的时候,选择的视频和音频码率都小于源文g的码率?/p>
转换完后的视频扩展名为MP4Q详l编码信息如下:
G:\Movie\Backkom\Assa Game Contest.mp4
General
Complete name : G:\Movie\Backkom\Assa Game Contest.mp4
Format : MPEG-4
Format/Info : ISO 14496-1 Base Media
Format/Family : MPEG-4
File size : 1.40 MiB
PlayTime : 33s 920ms
Bit rate : 347 Kbps
StreamSize : 11.2 KiB
Encoded date : UTC 2007-12-06 15:51:38
Tagged date : UTC 2007-12-06 15:51:38
Video #1
Codec : H.264
Codec/Info : H.264 (3GPP)
PlayTime : 33s 920ms
Bit rate : 314 Kbps
Width : 320 pixels
Height : 240 pixels
Aspect ratio : 4/3
Frame rate : 25.000 fps
Bits/(Pixel*Frame) : 0.160
StreamSize : 1.27 MiB
Encoded date : UTC 2007-12-06 15:51:38
Tagged date : UTC 2007-12-06 15:51:38
Audio #2
Codec : AAC LC-SBR
Codec/Info : AAC Low Complexity with Spectral Band Replication
PlayTime : 32s 415ms
Bit rate : 32 Kbps
Bit rate mode : VBR
Channel(s) : 2 channels
Sampling rate : 44 KHz
Resolution : 16 bits
StreamSize : 126 KiB
Encoded date : UTC 2007-12-06 15:51:38
Tagged date : UTC 2007-12-06 15:51:38
此视频在Flash Player 9.0.115中顺利播放,声音也没有问题?/p>
研究一下视频和音频的组?/h3>
Cq里Q就有一些问题了?a class="st_tag internal_tag" title="标签 H.264 下的日志" >H.264视频是否一定要搭配AAC音频呢?搭配MP3行么Q我压羃了一个采?a class="st_tag internal_tag" title="标签 H.264 下的日志" >H.264视频~码QMp3音频~码Q采用LAME MP3Q的qQ用l极解码播放正常Q但是在Flash Player中,只有囑փ可以昄Q却听不到声韟뀂下面是q个文g的编码信息:
F:\Material\Flash Platform\Flash\Cases\播放H.264视频\333.mp4
General
Complete name : F:\Material\Flash Platform\Flash\Cases\播放H.264视频\333.mp4
Format : MPEG-4
Format/Info : ISO 14496-1 Base Media
Format/Family : MPEG-4
File size : 2.59 MiB
PlayTime : 33s 920ms
Bit rate : 641 Kbps
StreamSize : 13.9 KiB
Encoded date : UTC 2007-12-05 09:21:21
Tagged date : UTC 2007-12-05 09:21:21
Video #1
Codec : H.264
Codec/Info : H.264 (3GPP)
PlayTime : 33s 920ms
Bit rate : 516 Kbps
Width : 320 pixels
Height : 240 pixels
Aspect ratio : 4/3
Frame rate : 25.000 fps
Bits/(Pixel*Frame) : 0.260
StreamSize : 2.09 MiB
Encoded date : UTC 2007-12-05 09:21:21
Tagged date : UTC 2007-12-05 09:21:21
Audio #2
Codec : MPEG-1 Audio
PlayTime : 32s 365ms
Bit rate : 128 Kbps
Bit rate mode : CBR
Channel(s) : 2 channels
Sampling rate : 44 KHz
Resolution : 16 bits
StreamSize : 506 KiB
Encoded date : UTC 2007-12-05 09:21:21
Tagged date : UTC 2007-12-05 09:21:21
又测试了H.264+MP3用AVI装?GP装Q在Flash Player中都无法播放声音。看来只?a class="st_tag internal_tag" title="标签 H.264 下的日志" >H.264+AAC可以被Flash Player支持。封装可以?GP或者MP4Q但不支持MKV装?/p>
关于装容器和视频文件后~
我们知道Q我们不能仅仅从视频文g的扩展名判断文g的编码。因为很多扩展名是支持多U编码的。例如AVI只是一U封装容器,它里面的视频和音频编码可以有很多U组合。可以是DivXQ也可以是XviDQ还可以是MPEG-1。下面的表格Q?a target="_blank">表格来源QZRong做部分调_单的描述了几U封装容器和视频、音频编码的对应情况Q?/p>
装容器 | 视频编码格?/strong> | 音频编码格? | Flash Player是否支持 |
AVI | Xvid | MP3 | 不支?/td> |
AVI | Divx | MP3 | 不支?/td> |
MKV | Xvid | MP3 | 不支?/td> |
MKV | Xvid | AAC | 不支?/td> |
MKV | H.264 | AAC | 不支?/td> |
MP4 | H.264 | AAC | 支持 |
3GP | H.263 | AAC | 不支?/td> |
3GP | H.264 | AAC | 支持 |
FLV | Sorenson Spark | MP3 | 支持 |
FLV | On2 VP6 | MP3 | 支持 |
从上表可以看出,要让Flash Player成功播放H.264视频Q最好采?GP或者MP4装容器?/p>
AAC~码的乱情?/h3>
上面的压~,AAC~码器用的都是Nero EncoderQ其?#8220;规格”有这样几个选项QAuto、LC-AAC、LE-AAC和HE-AAC v2。经q测试,q几个规格压~的音频都可以被Flash Player支持?/p>
|
Nero Encoder的选项
如果采用CT AAC+~码器,选项变成了下面q样Q更加复杂了。经q测试,q几个选项的组合也都可以被Flash Player支持。不论选择MPEG-4 AACq是MPEG-2 AACQ都没有问题?/p>
CT AAC+的选项
如果采用FAAC~码器,选项变成了下面q样。经q测试,q几个选项的组合也都可以被Flash Player支持QMPEG版本的选择也没有关pR?/p>
FAAC的选项
事实上,NERO Encoder和CT AAC+中的LC-AACQ就是FAAC中的Low ComplexityQ无长时预测?a class="st_tag internal_tag" title="标签 AAC 下的日志" >AACQ;而NERO Encoder中的HE-AACQ就是CT AAC+中的aacPlusQ它加了SBR(spectral band replication)QHE代表high efficiency。这也是Z么前面压~WMV视频的时候,选择的是HE-AAC~码Q在~码之后的文件信息里面显C的却是下面q些内容的原因了Q?/p>
Codec : AAC LC-SBR
Codec/Info : AAC Low Complexity with Spectral Band Replication
Ҏ(gu)Adobe公布的信息,Flash Player支持q些AAC~码Q?a class="st_tag internal_tag" title="标签 AAC 下的日志" >AAC Main; AAC LC; SBR Q因此,我一般选择使用NERO Encoder的HE-AAC?/p>