音视频播放异常现象总结

播放卡顿或者卡住:

1 流媒体不发流给客户端,客户端停在当前画面不动也不销毁,也不重拉流;

2 弱网环境,tcp乱序,且发包间隔时间比较大,播放器收一包耗时较多,导致解码异常卡主;

3 流媒体(发流端)数据插入一些增强帧,其他的P帧等(一般是某些公司的定制)导致播放器得到的数据不是一个连续的GOP;解码花屏或者直接跳过;

4 播放器 音视频解码使用同一个线程,视频解码超时阻塞音频以及后续的 视频,播放卡顿;

5 国标PS封装,PSM里有音视频,但是流里边只有单路视频或者音频,结合某些播放库的机制要等待复合流,或者视频像音频同步,导致卡主或者不显示

6 帧率过高,实时流,渲染来不及消耗,解码为了不阻塞数据接收,进而解码后丢帧(一般不在解码前丢帧,因为会影响解码是否成功),导致显示卡顿跳变;

loading。。。。。

秒开:

一般是 流媒体来做;流媒体开辟一个GOP容器, 当一个播放端去流媒体拉流的时候,流媒体要将容器中当前帧(不是I帧的话)前边的GOP快速刷出去,保证播放器能画面秒开

如果是流媒体推流也一样,流媒体在接收数据流解封装成帧的时候,没遇到I帧,清理一下GOP容器,遇到非I帧,就一边输出数据,一边送给容器,这样保证每次不管是推流还是被拉,都能秒开;

当然流媒体接收数据流要从I帧开始处理,否则流媒体接收P帧开始处理,此时有客户端过来拉流,没有I帧也就没有GOP容器内容,也无法秒开;

RTSP拉流下载:

1、 视频下载方式有很多,如直接http协商后,直接接收数据流;比如 http接口下载NVR数据;海大宇一般有自己的http接口可以支持http直接在响应数据里携带录像视频,如下

 2、另外也可以通过RTSP下载,设置高倍速,但是要注意这种倍速拉流代替下载的方式,会出现(接收端)数据来不及接收/(发送端)发不出去,而阻塞在发流端大把数据,所以要根据socket的可读可写状态实时调整送流状态(暂停,继续),socket状态 reback到读文件(要下载的录像文件)模块;

减少传输延时:

 1、选择正确的协议,比如,RTSP。RTMP,就比HLS(TS切片)好;

2、发送端阻塞数据检测,进而一定策略丢数据,或者是调整编码参数,降低编码质量,但是要有好的拥塞检测程序;

3、UDP就比TCP要好,没有丢包重传机制,但UDP可能会丢包

 

posted on 2024-05-11 13:52  邗影  阅读(10)  评论(0编辑  收藏  举报

导航