
# 云直播帮助主播解决播放时延大的问题
一般情况下，RTMP推流+FLV播放的正常延迟在5s左右，若您的直播出现延迟时间过长的现象，可参考以下方式进行性能优化。
#### GOP设置
GOP：（Group of Pictures）画面组，一个GOP就是一组连续的画面，每个画面都是一帧，一个GOP就是大量帧的集合。直播的视频数据流，其实是一系列的视频帧率组件，包括I帧、P帧等。一个GOP就是以一个I帧，多个P帧开始。当用户第一次观看的时候，播放器需要找到I帧才能开始播放，而播放器会到服务器寻找到最近的I帧反馈给用户。因此，减少GOP帧的数量，能减少播放器加载GOP帧所用的时间。在直播推流端GOP一般建议设置为1\~2s。
#### 播流协议选择
华为云视频直播服务支持RTMP、HTTP-FLV和HLS三种播放协议。
```
RTMP：rtmp://播放域名/AppName/StreamName
HTTP-FLV：http://播放域名/AppName/StreamName.flv
M3U8：http://播放域名/AppName/StreamName.m3u8
```
- RTMP：其原理是将大块的视频帧和音频帧"剁碎"，然后以小数据包的形式进行传输，且支持加密，因此隐私性相对比较理想，但由于拆包组包的过程较复杂，所以在海量并发时也容易出现一些不可预期的稳定性问题。
- HLS：苹果推出的流媒体协议，将视频分成5-10秒的视频小分片，然后用m3u8索引表进行管理，由于客户端下载到的视频都是5-10秒的完整数据，故视频的流畅性很好。但一般播放器会在缓存3-4个分片后才启动播放，因此也引入了10-30s左右的延时。
- HTTP-FLV：由Adobe公司主推，格式极其简单，只是在大块的视频帧和音视频头部加入一些标记头信息，在延迟表现和大规模并发方面都很成熟。但需要注意的是HTTP-FLV在手机浏览器上的支持非常有限。
 
因此，在降低延时方面，选择HTTP-FLV作为播放协议能有效地降低时延。但HLS对浏览器兼容比较友好，且支持跨终端，所以HLS也是很多用户的首选。
