在手机直播平台开发过程中我们一定会涉及到音视频压缩编码知识,压缩编码过程是一种有损的压缩,它的目的是减少音视频文件所需占用的空间和带宽并提高兼容性,在此期间还要尽可能保障音视频“不失真”。
一、 为什么要编解码?
为什么要进行压缩编码?因为这个操作能够降低流媒体传输所使用的带宽,并同时为用户提供高质量的观看体验,直播平台每天会进行上百场直播,在视频不压缩的情况下进行传输会非常浪费流量,原视频过大的比特率还会把用户卡在视频缓冲区导致用户无法流畅得观看直播,同时占用大量带宽,造成平台带宽费用的增长。
对视频编码更准确的描述应该是代码转换,转换原视频的编码使之兼容回放操作或其他软件硬件。
二、 如何进行压缩编解码?
手机直播平台开发中涉及到的压缩编解码的核心技术就是去除冗余信息,他们包括而不限于:
空间冗余:在同一幅图像中,规则物体和规则背景(所谓规则是指表面颜色分布是有序的而不是杂乱无章的)的表面物理特性具有相关性
视觉冗余:某些不被人在意的细节可以被剔除
知识冗余:有许多图像的理解与某些基础知识有相当大的相关性。
时间冗余:图像序列中的两幅相邻的图像,后一幅图像与前一幅图像之间有较大的相关,这反映为时间冗余。
三、 如何选择编码标准
现在,H.264的编码标准在手机直播平台开发行业内是比较普遍的,而新一代编码标准H.265和VP9等在最近的呼声越来越高,H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同时对一些相关的技术加以改进。H.264可以以低于1Mbps的速度实现标清(720P以下)数字图像传送;H.265则可以实现利用1~2Mbps的传输速度传送普通高清(720P)音视频传送。
四、 两种编解码方式的选择
现在,我们通常会在手机直播平台开发中给直播系统设置软编码和硬编码两种编码方式以应对运营方的不同要求,但相对而言,在同一测试环境下,硬件编解码方式在速度和CPU占有率上表现更好,所以我们通常会建议运营方使用硬件编码的方式。