Advertisement

android 视频通话相关

阅读量:

用camera还是mediarecorder来获得视频流啊?
都可以,
使用camera的话其实就是继承AbstractCamera类把获取的每一帧yuv420sp数据使用ffmpeg中的1ibx264或者直接使用x264编码 软编码 得到h264视频流,然后把数据发送出去。
使用mediaRecorder其实就是把硬编码得到的h264流自己进行处理,得到其手机的sps,pps,然后rtp打包发送出去。
2.用mediarecorder,怎么获得每一帧的数据进行rtp打包实时发送呢?
参考spydroid源代码,里面有具体实现。
3.用mediarecorder录制视频的时候设置编码方式H.264,是不是说录制出的视频已经是h.264编码了
举个简单例子,mediarecorder设置编码格式为h264,容器为3gp或者mp4,那么如果设置保存路径就是采用h264格式的 3gp或者mp4文件。如果是得到实时流,因为视频header是在后面回写得到的,那么你需要把把得到的流进行处理,比如0001 sps 0001 pps 0001 h264data的形式。
4.服务器采用什么比较好,有没有人可以帮忙推荐一下。red测试通过了,但是要关闭防火墙,视频也有延迟,主要是android往服务器烧数据感觉没经过压缩,这样肯定是不行的吧。live555??
red5 的话,请采用rtmp协议,请搜索网上的一个资源iVideoChat视频录制发布到red5服务器,这个是我以前网上找的,
live555的话,请研究rtsp协议,c++语言我不太熟,请参考博客系列文章

rtp打包,用的是NALDecoder翻译过来的打包方式,没法控制啊,看资料有人说使用jrtplib,下载编译了c++,测试程序也运行过了,一知半解的。有没有其他的rtp打包工具呢,或者有什么资料可以提供给学习下
rtp打包参考spydroid的实现方式
6.还看到很多说ffmpeg移植编解码的,感觉要学的好多
ffmpeg很强大,采集、编码、切片、解码,功能很好很轻大。学习步骤应该是ffmpeg的安装、移植ffmpeg到android上,jni调用等。
<-------------------------------------------------------------------------------------------------------------------------------------------------------------->

基于sipdroid框架设计的视频通话系统可以实现功能模块间的高效通信,并提供相应的开发文档作为参考。项目组已将完整的源代码发布至GitHub存储库(https://github.com/sipdroid/sipdroid),方便有兴趣的技术研究者深入探讨项目的实现细节。此外,在实际应用开发中采用模块化架构理念,在各功能组件之间保持良好的可扩展性和维护性

<-------------------------------------------------------------------------------------------------------------------------------------------------------------->

编译方面:通过mediaRecorder或Camera完成录像任务。这种操作会调用编译过程中的接口,并采用的是安卓平台的标准编码接口。相较于其他如X264等主流编码库而言, mediaRecorder的优势在于其更简便易行的特点,并且运行效率显著提升,无需过多关注底层的具体实现细节即可达到预期效果

传输方面:
主要通过RTSP协议实现编码数据的转换,在编码设备上部署一个RTSP服务器以完成此功能。
主要采用socket方式传输mediaRecorder生成的数据,在输出位置设置为localSocket模式时,默认不会进行视频回写操作。这种传输方式会导致输出数据与文件保存格式之间产生微小差异。
接收端设备只需补充少量数据即可完成与发送端的信息同步

解码方面:
主要通过RTSP协议进行播放,并支持安roid端口实现播放功能。
对于SOCKET接收到的数据而言, 由于缺乏视频回写机制导致头部信息不完整, 因此你需要将缺失的部分补充完整, 并借助如JLIBRTP等第三方RTP库对数据进行打包处理即可完成解码流程.

全部评论 (0)

还没有任何评论哟~