所谓视频,其实就是将一张一张的图片连续的放出来,就像放幻灯片一样,由于人眼的惰性,因此只要图片的数量足够多,就会觉得是连续的动作。 所以,只需要将一张一张的图片保存下来,这样就可以构成一个视频了。
但是,由于目前网络和存储空间的限制,直接存储图片显然不可行。举个例子:在视频聊天中,假定从摄像头采集的图片每张大小200KB,每秒钟发送大概15帧图片,这样每秒钟需要的流量就需要3M(意味着需要24M的宽带),显然这个要求太高了。
于是,就可以考虑将这些图片压缩来减少大小。并且视频基本上都是连续的两帧图像差别不是太大。因此,在记录下第一张完整的图像之后以后的每张图像都是只记录下和上一帧图像不一样的地方,直到出现了差别很大的图像,才重新记录一帧完整的图像(这个完整的图像就叫做关键帧)。这样就可以很大程度上减小空间了。
编码格式这么多,我们应该选择哪种呢? 经过查阅资料目前比较好的选择是H.264,因此,只需要了解H.264就行,我们后续的项目也是全部使用H.264。H.264的细节不是三两下能说清楚的,本文不做解释
介绍下H.264有哪些优势:
- 低码率(Low Bit Rate):和MPEG2和MPEG4
ASP等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3。 - 高质量的图像:H.264能提供连续、流畅的高质量图像(DVD质量)。
- 容错能力强:H.264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。
- 网络适应性强:H.264提供了网络抽象层(Network Abstraction
Layer),使得H.264的文件能容易地在不同网络上传输(例如互联网,CDMA,GPRS,WCDMA,CDMA2000等)。 - 高压缩率,H.264的压缩比达到惊人的102∶1。