Sensor(可以是一个摄像头、手机):负责采取图像数据
视频由一帧一帧的图片构成,如果图像(Sensor)每秒钟采取24-30张图片,人眼看起来就像视频,常见的图片格式PNG,JPG
假如一张图片2MB,每秒钟采集30张,采取完图片需要在外网进行传输,当我们在外网进行传输时,这时候网络传输带宽要求为:2MB*30 = 60MB/s,
这个时候在外网进行传输就需要对图像进行压缩,如对60MB/s压缩成 0.2MB/s.
H.264压缩算法的基本思想:因为视频图像视频的第一帧与第二帧在画面的差异比较小,而H.264只传输图像中有变化的帧,可以大大进行压缩. 故需要找到上一帧与下一帧的区别。
比如协议RTSP,RTMP中一般包装的是H.264的祼数据,在接收端,我们需要对协议包进行拆开,拿出H.264祼数据,然后对其解码。
比如通过网络摄像头获取H.26数据
sensor采集的是原始的一帧一帧的图片,图片可能是很原始的图片,需要对图片编码成H.264压缩格式的数据,其中编码一般通过芯片(hadrware)解决.
当客户端通过RTSP,RTMP接收到H.264的祼流(数据)后,需要对H.264进行还原(解码)成一帧一帧的图像,然后在手机上每秒钟绘制24-30张图片(播放)。比如,iOS,Android都有内置的硬件解码(硬解),但是没有开放,所以我们需要(软解)用一个第三方的库来解码,比如:用FFmpeg进行解码。
如iOS解码: