背景信息
在视频直播场景下,主播与用户之间延时越短,更容易进行互动。在此背景下,客户通常希望视频直播的分发延时越短越好,如果需要降低直播延时,可参考如下方式进行性能优化。
前提说明
影响直播延时的因素通常包含:GOP大小、主播推流器编码、第一公里传输、CDN加速、视频处理、最后一公里传输、使用协议、播放器buffer、播放器解码渲染等。
优化方式一:GOP设置
- GOP(Group Of Picture)是视频的关键帧的间隔,是视频图像编码器和解码器存取的基本单位。GOP由I帧开始,后面跟随着一组B帧和P帧,直到下一个I帧之前的帧为一个GOP。当用户第一次观看的时候,播放器需要找到I帧才能开始播放,一般情况下直播服务器会发送缓存中最新的I帧给播放器。
- 因此,建议将直播推流端GOP设置为1~2s。缩短GOP的时长,减少播放器加载GOP的耗时来降低直播延时。
优化方式二:选择合适的播放协议
天翼云提供FLV、HLS、RTMP三种播放协议。
- FLV
- 由Adobe公司推出,将流媒体数据封装成FLV格式,通过HTTP协议传输给客户端,格式简单,只是在大块的视频帧和音视频头部加入一些标记头信息。支持使用HTTPS加密传输,支持Android移动端和iOS移动端。
- 示例:http://domain/app/streamname.flv
- RTMP
- 由Adobe公司推出,传输的过程中消息会被拆分为更小的消息块(Chunk)单元,再将分割后的消息块通过TCP协议传输。由于其复杂的拆包和组包过程,可能导致数据传输不稳定。
- 示例:rtmp://domain/app/streamname
- HLS
- 由Apple公司推出,基于HTTP的流媒体传输协议。将视频分成多个连续的视频小分片,然后用m3u8索引表进行管理。一般播放器会在缓存3-4个分片后才启动播放,假设一个分片为3s,因此总延时至少约9s~12s。但HLS可以直接在浏览器中播放。
- 示例:http://domain/app/streamname.m3u8
因此,HTTP-FLV和RTMP延时较小,适合低延时播放的场景。HLS延时较大但兼容性好,适合对延时不敏感但需要更多播放终端可以播放的场景。
优化方式三:减少对直播流的处理
如果对直播流进行转码操作,用户请求的是转码流,通常会在原来延时的基础上在增加1s~3s的延时。如果对延时有要求,建议是不进行对应的转码。
优化方式四:使用极速直播
极速直播(LIVE RTC)是天翼云视频直播产品的全新升级,是一款超低延时、超高流畅度的直播产品。其基于天翼云优质CDN与边缘节点,兼容标准直播功能的同时,提供更强的抗丢包能力,适用于对网络延时要求高、互动性强的直播场景。如果客户对延时要求极高,可以选择极速直播产品。