音视频技术原理
1. 播放器的数据处理流程
2. 封装格式
按照一定的格式,把音视频流和描述数据, 存储到文件中
3. 编码格式:
音频编码: G.711, G722, G726, AAC,MP1/MP2/MP3, AC-3, WMA...
视频编码: h265/H264/H263,MPEG1/2/3/4, WMV, MJPEG, VP8/VP9...
4. 视频编码原理
经典的IPB压缩:
Iframes: 节点图像, 保存一帧完整图像压缩后的数据,
编解码不涉及自己以外的任何图像
Pframes: 预测图像: 仅保存当前帧与前一帧的差值信息,
解码依赖于前一帧数据
Bframes: 前后预测图像: 保存当前帧与前一帧和后一帧的差值信息, 可双向单帧逐步播放
5. 视频编码原理
以H264为例
6. 图像群组(GOP)
图像群组就是一组连续的图像, GOP总是以I frame为起始点,
后面有若干P frame和Bframe, 下一个I frame则是新的GOP起点
7. 硬件编解码
硬件编解码是图形芯片厂家提出的用GPU资源解码视频流的方案
(软解是用CPU承担解码工作)
优点是编解码效率高,功耗低、热功耗低,缺点存在局限性,设置较为复杂, 一般需要使用图形芯片厂商提供的驱动和sdk程序
为什么GPU编解码速度快于CPU?
•CPU 主要为串行指令而优化,而GPU 则是为大规模的并行运算而优化
•从并行的角度来看,现代的多核CPU 针对的是指令集并行(ILP)和任务并行(TLP),而GPU 则是数据并行(DLP)
•在同样面积的芯片之上,CPU 更多的放置了多级缓存(L1/L2/LLC)和指令并行相关的控制部件(乱序执行,分支预测等等),而 GPU 上则更多的是运算单元(整数、浮点的乘加单元,特殊运算单元等等)
•GPU 往往拥有更大带宽的Memory,也就是显存,因此在大吞吐量的应用中也会有很好的性能
8. 音视频协议
HLS,RTSP/RTP/RTCP,H323,SIP, RTMP...
9. 开源框架
vlc, ffmpeg, gstreamer, directshow,live555, webRTC...
————————————————
版权声明:本文为CSDN博主「松鼠板栗」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/allen8612433/article/details/80328876