我们上传视频到视频网站后,视频网站通常都会重新压缩为FLV格式,对视频造成了很大的损失。现在Flash Player 9.0.115发布了,这是一个支持H.264的正式版本,这意味着,用FLV播放器也能播放以H.264编码的MP4视频文件了。也就是说,我们可以将自己的视频压制为H.264编码的视频文件,再上传到视频分享网站,就有可能避免被网站重新压缩,从而保证画质。
这一点,本站的另一篇文章已有表述。(参阅:保持上传视频高清晰度的方法)
但很多人在按上面的教程操作时却难以成功。这是为什么呢?
主要原因应该有两个:
一个原因是,有些网站只要是上传的视频,不管什么情况均会重新压缩一次,对于这种网站上述招数自然不管用。
另一个原因是,在用MediaCoder压制时,音频与视频编码的参数设置有问题。这主要是音频与视频编码配对,以及Flash Player 对MP4的支持有限性。
要想成功获得Flash Player 能够播放的MP4视频,以下的数值必需了解:
1. Flash Player 9.0.115支持的视频编码
首先,要了解Flash Player 9.0.115到底支持哪些视频编码。下面是Adobe官方提供的一个Flash Player支持的视频编码列表:
视频编码 | SWF 文件格式版本(发布的版本) | 支持播放的最小Flash Player版本 |
Sorenson Spark | 6 | 6 |
On2 VP6 | 6 | 8 |
H.264 (MPEG-4 Part 10) | 9 | 9.0.115.0* |
音频编码 | SWF 文件格式版本(发布的版本) | 支持播放的最小Flash Player版本 |
ADPCM | 6 | 6 |
MP3 | 6 | 6 |
HE-AAC (MPEG-4 Part 3) | 9 | 9.0.115.0* |
*Flash Player 可以播放视频编码为H.264,音频编码为AAC的标准MPEG-4文件。文件的扩展名可以是:F4V, MP4, M4A, MOV, MP4V, 3GP, 3G2等等。
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. |
2. 音频、视频编码配对及封装容器情况
我们知道,MP4、FLV、AVI等格式均支持不同的视频编码与音频编码,但又不是任何视频编码器与音频编码器都能够随意搭配,而且我们也不能仅仅从视频文件的扩展名判断文件的编码。比如AVI,它通常是以一种封装容器的情况出现,它里面的视频和音频编码可以有很多种组合。可以是DivX,也可以是XviD,还可以是MPEG-1。
常见的几种封装容器和视频、音频编码的对应情况如下:
封装容器 | 视频流编码格式 | 音频流编码格式 | Flash Player是否支持 |
AVI | Xvid | MP3 | 不支持 |
AVI | Divx | MP3 | 不支持 |
MKV | Xvid | MP3 | 不支持 |
MKV | Xvid | AAC | 不支持 |
MKV | H.264 | AAC | 不支持 |
MP4 | H.264 | AAC | 支持 |
3GP | H.263 | AAC | 不支持 |
3GP | H.264 | AAC | 支持 |
FLV | Sorenson Spark | MP3 | 支持 |
FLV | On2 VP6 | MP3 | 支持 |
从上表可以看出,要让Flash Player成功播放H.264视频,最好采用3GP或者MP4封装容器。而平常我们熟悉的DivX以及XviD编码,都属于MPEG4标准的范畴,但它们属于MPEG4 Part 2,Flash Player是不支持它们的。
了解了这些参数后,相信你已经能成功压制出Flash Player能够播放的H.264编码的视频文件了,接下来要做的事,就是找一个不会对符合网站要求的视频进行重新压缩的视频网站了。如前面提到的那篇文章所说的一样,现在已知的网站有17173、QQ播客等。
注意:如果使用H.264+MP3用AVI封装和3GP封装,在Flash Player中是无法播放声音的。看来只有H.264+AAC可以被Flash Player支持。封装可以使用3GP或者MP4,但不支持MKV封装。