关于视音频传输和编解码的一些概念
2017-03-11 20:49 jiayayao 阅读(2853) 评论(0) 编辑 收藏 举报一、基本概念
1. I/B/P帧
I帧是内部编码帧,是一个完整的画面,P帧是前向参考帧,B帧是双向参考帧。
由于I帧是一个完整的图片,P帧只保留相对于I帧变得部分,它的压缩比是I帧的50%;
B帧前后的帧都会引用,压缩比大概是I帧的50%;
2. I帧和IDR帧(关键帧)的区别
I和IDR帧都是使用帧内预测的。IDR帧的作用是立刻刷新,使错误不致传播,从IDR帧开始,重新算一个新的序列开始编码。而I帧不具有随机访问的能力,这个功能是由IDR承担。IDR会导致DPB(DecodedPictureBuffer 参考帧列表——这是关键所在)清空,而I帧不会。IDR图像一定是I图像,但I图像不一定是IDR图像。一个序列中可以有很多的I图像,I图像之后的图像可以引用I图像之间的图像做运动参考。
对于IDR帧来说,在IDR帧之后的所有帧都不能引用任何IDR帧之前的帧的内容,与此相反,对于普通的I帧来说,位于其之后的B/P帧可以引用位于普通I帧之前的I帧。从随机存取的视频流中,播放器永远可以从一个IDR帧播放,因为在它之后没有任何帧引用之前的帧。但是,不能在一个没有IDR帧的视频中从任意点开始播放,因为后面的帧总是会引用前面的帧。
3. PTS和DTS
PTS:Presentation time stamp.
DTS:Decode time stamp.
如果视频中全部是I帧和P帧,那么PTS和DTS都是单调递增的。如果有B帧,因为它要引用后面的P帧和前面的I帧。DTS的顺序是1342,PTS的顺序是1234.
二、视频传输
从网络上接收视频时首先要解协议(RTSP/RTMP/HTTP),然后是解封装格式(MKV,RMVB),之后才是将视频(H264)和音频(AAC)格式数据分别解码为图像(RGB/YUV)和声音(PCM),再根据时间戳同步播放。
RTSP+RTP主要用于IPTV,原因是传输数据使用的是UDP,在网络环境比较稳定的情况下,传输效率是比较高的;
RTMP主要用于互联网音视频传输,它使用的是TCP传输,因为互联网环境相对较差,采用RTMP保证了视频的传输质量,但是其传输延迟相对较高,传输效率相对较低。
使用RTMP技术的流媒体系统有一个非常明显的特点:使用 Flash Player 作为播放器客户端,而Flash Player 现在已经安装在了全世界将近99%的PC上,因此一般情况下收看RTMP流媒体系统的视音频是不需要安装插件的。用户只需要打开网页,就可以直接收看流媒体,十分方便。直播服务普遍采用了RTMP作为流媒体协议,FLV作为封装格式,H.264作为视频编码格式,AAC作为音频编码格式。FLV是RTMP使用的封装格式,H.264是当今实际应用中编码效率最高的视频编码标准,AAC则是当今实际应用中编码效率最高的音频编码标准。
librtmp是RTMP协议的实现,可以使用librtmp来实现协议的解析和数据的收发。直播服务器可以基于nginx+rtmp实现;直播客户端方面采用librtmp负责推流,FFmpeg负责编码。
全称 | 协议 | 原理 | 延时 | |
RTMP | Real time messaging protocol | 长连接tcp | 每个时刻的数据,收到后立即转发 | 1~3s |
HLS | Http live streaming | 短连接http | 集合一段时间的数据生成ts文件,更新m3u8 |
>10s |
HTTP-FLV | RTMP over http | 长连接http | 同RTMP,使用http | 1~3s |
三、视频压缩
- 视频压缩分为有损压缩和无损压缩。
无损压缩是采用一些压缩算法压缩视频,但是压缩完毕后还能够真实的还原原始数据;
有损压缩是借助于人眼的一些特性,丢弃一些特定的数据,但是压缩完毕后的视频效果还在人眼可以接受的范围内的特定数据。 常见的H.264、H.265编码都是有损编码。
- 视频压缩编码的主要原理是:
帧内编码(变换编码和熵编码):像素点之间存在相关性。图像变换到频域可以实现去相关和能量集中。
帧间编码(运动估计和运动补偿):将图像划分为一个个小区块,进行预测。
- H.265提供了更多不同的工具来降低码率。H.264中的每个宏块(macroblock)大小都是固定的16*16,而H.265可以选择从最小的8*8到最大的64*64.
四.参考资料:
http://blog.csdn.net/leixiaohua1020/article/details/18893769
本文来自博客园,作者:jiayayao,邮箱:jiayayao@126.com,转载请注明原文链接:https://www.cnblogs.com/jiayayao/p/6536140.html