当前位置 : 主页 > 编程语言 > java >

从MediaRecord录像中读取H264参数

来源:互联网 收集:自由互联 发布时间:2022-07-19
说明: 许多以前做个一个测试项目,想把android手机视频接入视频服务器,做法是这样的: 把android手机的实时视频上传到后台转发服务器,转发服务器把音视频流包装成IPC rtsp服务器形式


说明:

许多以前做个一个测试项目,想把android手机视频接入视频服务器,做法是这样的:

把android手机的实时视频上传到后台转发服务器,转发服务器把音视频流包装成IPC rtsp服务器形式,流媒体连接手机转发服务器就像连接IPC设备一样,使用rtsp的拉流模式获取视频流。

从而实现手机---转发服务器---视频服务器—PC客户端的双向通信。

这个方案是一个简化方案,手机端仅仅负责抓包回放以及远程播放,转发服务器仅实现一个rtsp封装并未其他任何功能,其他模块是不变的。手机端使用了最上层的mediarecorder对象,一边录制回显,一边上传音视频。

手机端需要使用自定义的协议和转发服务器通信,把音视频参数告知服务器,其中获取视频参数是很重要的。

如何 获取视频参数呢?其实,mediarecorder(H264)的录制数据的开头就包含了SPS和pps参数,分析一下取出来即可,并且相同的设备、相同的配置获取的sps,pps都是相同的,只需要在启动界面的时候获取一下即可,后面就不需要获取了。

如何获取H264参数呢?

解决方案:

1、设置录像的视频解码参数为H264

从MediaRecord录像中读取H264参数_音视频

2、获取到录像数据之后跳过文件头:

从MediaRecord录像中读取H264参数_服务器_02

​​​​​​

 3、后面就是SPS和PPS:

从MediaRecord录像中读取H264参数_手机端_03

​​​​​​

 

这样就找到视频参数,然后封装起来,告诉服务器。

参考:

以前我好像写过一篇文章介绍sps,pps,那时候在做h264分片传输。


上一篇:C中使用宏处理双向链表的经典例子
下一篇:没有了
网友评论