rtsp协议播音频踩坑记录之同时播音频与视频,视频卡帧


在我在基于视频的rtsp推送的基础上加上音频并用nvr播放开发的时候,出现了这样一个现象:

单独只播视频是没有问题的,但是我加上音频后,视频在播放1s后就开始卡帧了,并且音频的声音aac格式的直接没有,g711a格式的音频能听得到说话声音,但声音有奇怪的嗒嗒声

然后用vlc播放时aac的声音是正常的,视频也不卡了,一到nvr上就卡

 

问题定位:

经过一番调试最终发现一个问题,就是我在vlc播放不卡那是因为vlc支持2种传输方式,一般默认情况是http,这种传输是udp传输,后来我换成第二种之后也开始卡了

 

而对于tcp与udp传输方式在rtsp中,对于数据打包传输这一块就只有一个区别,那就是tcp协议比udp协议需要多打包一个rtsp的头部,于是定位问题是出在了rtsp头部打包的地方

 

问题解决:

最终发现是我的rtsp头部打包的时候多加了几个字节

一般一个rtsp数据包由tcp传输的时候,是rtsp头部 + rtp头部 + 数据,而rtsp头部需要将数据的长度放进去,我在传输音频的时候一不小心将rtp的头部长度也算进去了,导致解析时多解析了音频的长度,将视频的数据损坏了

导致播视频的第一帧没问题,一播音频就卡

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM