
# 音视频上传后播放卡顿
#### 问题描述
音视频上传到视频点播服务后，使用控制台或者播放器播放，出现卡顿现象。引起音视频播放卡顿的主要原因通常有如下几方面：
- 音视频源文件存在问题。
- 网络带宽速度不够，导致无法及时下载音视频数据。
- 播放设备解码性能不足，造成音视频数据无法及时完成解码或渲染。
- 音视频未预热，导致首个用户访问时，需要从点播源站获取文件。
可以在本地播放源文件判断是否源文件本身存在问题。在排除源文件的本身问题的情况下，可以在如下几个方面对播放卡顿问题进行优化。
#### 预热音视频文件
在视频点播控制台或者调用API将对应的音视频文件进行预热，将音视频文件主动分发到CDN节点上，用户首次访问可直接命中缓存，从而解决首次播放卡顿的问题。
#### 改变播放硬件设备
若播放音视频的硬件设备配置过低，编解码的速度就会降低，从而出现播放卡顿现象。可以通过改变播放音视频的硬件设备来尝试定位卡顿原因。
#### 改变网络环境
若播放端的下行网络环境不佳，可能导致数据无法及时下载，从而出现播放卡顿现象。
使用[在线带宽测试](https://www.speedtest.net/)检查播放端下行网络带宽情况，若下行网络带宽不佳，建议切换网络环境。同时，检查是否有下载数据占用网络带宽，建议在同一网络环境下，不要有大量的带宽占用行为出现，比如下载等。
#### 选择硬解码
对于分辨率过高的视频，由于解码性能消耗会比较大，若设备的性能不足，则可能导致解码速度赶不上视频的播放速度，在这种情况下可以选择使用硬解码方式，通过GPU进行解码。
#### 设置缓存策略
为了缓解播放过程中出现的卡顿现象，可以让播放器侧先缓冲一定的数据后再解码播放，但若播放器缓存的音视频数据过多，会影响视频的首屏启播速度。增大播放器的缓冲区，让播放器每次都下载足够多的数据再进行播放，能够减少播放过程中出现的卡顿。但是这样也同时会延长视频的启播时间。因此，对于缓存大小的设置，需要用户根据实际情况，考虑卡顿和启播两个因素，尽量达到平衡。
#### 选择合适的分辨率
超清、2K和4K等清晰度较高的视频，对下行网络和播放设备都有相对高的要求，且若是在移动端播放，过高的分辨率并不能在移动端有明显的感官差异。因此，在发生卡顿时，可以考虑切换到低一档的分辨率，从而优化网络加载速度，降低播放设置的性能消耗，最终达到卡顿缓解的目标。
