HI3516AD+IMX290 rtsp-h264测试代码完善
本文章就是针对厂家提供的rtsp-h264测试代码新版的vlc播放器、安卓端、ios端都播放不了的问题提上完善指引
对该代码的修改一定要有rtsp协议基础,理解整个协调流程。
RTSP交互流程:
C表示RTSP播放器,S表示RTSP服务端
C->S: OPTION request //询问S有哪些方法可用,有些播放当心跳使用,如果不回复播放器就断开
S->C: OPTION response //S回应信息中包括提供的所有可用方法
C->S: DESCRIBE request //要求得到S提供的媒体初始化sdp描述信息
S->C: DESCRIBE response //S回应媒体初始化描述信息
C->S: SETUP request //设置会话属性,建立会话
S->C: SETUP response //S建立会话
C->S: PLAY request //C请求播放
S->C: PLAY response //S回应请求信息
S->C: 开启相关的线程发媒体数据
C->S: TEARDOWN request //C请求关闭会话
S->C: TEARDOWN response //S回应请求
致命问题所在
导致新vlc播放器 、ios端、安卓端等播放不了最致命的问题是原厂的测试代码没有对OPTION流程完善,有些播放会把OPTION当作心跳来使用,而原厂代码在完成rtsp流程后未OPTION请求妥善的回复,导致播放器默认服务器连接异常最终播放视频失败。原厂代码还有些客户端退出线程回收等问题需要优化。
该代码是基于厂家提供的rtsp-h264测试代码进行完善修改的,本来的测试代码只支持旧版的vlc播放器,而该代码支持新版的vlc播放器 、ios端、安卓端等。