说明: 许多以前做个一个测试项目,想把android手机视频接入视频服务器,做法是这样的: 把android手机的实时视频上传到后台转发服务器,转发服务器把音视频流包装成IPC rtsp服务器形式
说明:
许多以前做个一个测试项目,想把android手机视频接入视频服务器,做法是这样的:
把android手机的实时视频上传到后台转发服务器,转发服务器把音视频流包装成IPC rtsp服务器形式,流媒体连接手机转发服务器就像连接IPC设备一样,使用rtsp的拉流模式获取视频流。
从而实现手机---转发服务器---视频服务器—PC客户端的双向通信。
这个方案是一个简化方案,手机端仅仅负责抓包回放以及远程播放,转发服务器仅实现一个rtsp封装并未其他任何功能,其他模块是不变的。手机端使用了最上层的mediarecorder对象,一边录制回显,一边上传音视频。
手机端需要使用自定义的协议和转发服务器通信,把音视频参数告知服务器,其中获取视频参数是很重要的。
如何 获取视频参数呢?其实,mediarecorder(H264)的录制数据的开头就包含了SPS和pps参数,分析一下取出来即可,并且相同的设备、相同的配置获取的sps,pps都是相同的,只需要在启动界面的时候获取一下即可,后面就不需要获取了。
如何获取H264参数呢?
解决方案:
1、设置录像的视频解码参数为H264
2、获取到录像数据之后跳过文件头:
3、后面就是SPS和PPS:
这样就找到视频参数,然后封装起来,告诉服务器。
参考:
以前我好像写过一篇文章介绍sps,pps,那时候在做h264分片传输。