安卓android视频录制、另一部手机实时观看方案

来源:互联网 发布:猫力 黑历史 知乎 编辑:程序博客网 时间:2024/04/28 05:21

恰逢2014 Google I/O大会,不难看出安卓在Google的推进以及本身的开放性作用下,已经快延生到生活的各个方面了,从安卓智能手机、平板,到可穿戴的Android Ware、眼镜、手表、再到Android汽车、智能家居、电视,甚至最近看新闻,日本出的几款机器人都是Android系统的,再把目光放回监控行业,传统监控中的移动终端设备,例如:单兵设备、手持设备、车载终端设备,包括家庭监控中用到的智能设备,都可以用Android系统替代了,不仅开发容易,而且易扩展,设备也更加智能了。

<img src="http://www.2cto.com/uploadfile/Collfiles/20140627/201406270911034.jpg" alt="" http:="" www.2cto.com="" kf="" ware="" vc="" "="" target="_blank" class="keylink" style="border-width: 0px; padding: 0px; margin: 0px; list-style: none; width: 630px; height: 283.595166163142px;">vcC0o6zO0sPHz8jKtc/WQW5kcm9pZMrWu/q1xNL0ytPGtbLJvK/T68nPtKu1xMq1yrG84L/YuabE3KGjR29vZ2xlIENvZGXJz9PQ0ru49r+q1LTP7sS/o7o8c3Ryb25nPnNweWRyb2lkLWlwY2FtZXJhPC9zdHJvbmc+o6xzcHlkcm9pZMTc1NpBbmRyb2lkyta7+tbQvajBotK7uPa+q7zytcRIVFRQIFNlcnZlcrrNUlRTUAogU2VydmVyo6y5psTcwOAmIzIwMjg0O9Pa0ruw47XESXBDYW1lcmGjrLzIxNy5u82ouf3N+NKzt8POysnjz/G7+rKi0N64xLzgv9jF5NbDo6y7ucTczai5/Wh0dHC78tXfcnRzcNCt0umjrLvxyKG84L/YtcTKtcqx0vTK08a1o6y2+MfStNPG5LT6wuu94bm51tCjrL/J0tS/tLP2o6xzcHlkcm9pZNLRvq3Ktc/WwctSVFNQU2VydmVyoaJSVFNQQ2xpZW50oaJSVFCholJUQ1ChokgyNjShokFBQy4uLrXItci5psTco6zX3Nauo6zU28PH0OjSqrXEVXRpbGl0eba80tG+rb7fsbjBy6Os1rvSqr2r1eLQqbmmxNzX6brPtb3Su7/pvs3E3Mq1z9bU28PH0qq1xNaxsqXQ6MfzwcuhozwvcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140627/201406270911037.jpg" alt="\">

图 - Android实现IPCamera的功能


在之前的博客“基于Darwin实现的分布式流媒体直播服务器系统”中,我们用Windows的摄像头和麦克风分别采集音视频数据,编码成H264和AAC,再用RTP打包,推送到Darwin流媒体服务器,实现直播。同样,我们参考EasyIpCamera的设计方法,App启动后,连接并保活至中心管理服务器,接收来自CMS的控制命令。采集安卓摄像头视频和mic声音,进行H264和AAC编码(这里我们只参考spydroid实现了硬编码,软编码在后续中将会更新进来,不过经过尝试,目前大部分Android音视频采集都支持硬编码),再通过RTSP和RTP,将实时音视频数据推送到流媒体服务器,并由流媒体服务器进行转发和分发,实现直播。

\

图 - Android接入EasyDSS


这里主要就是RTSP/RTP的推送过程,这个在之前的博客“基于DSS的先侦听后推送式流媒体转发”中详细描述了这个过程,具体的推送代码也可以参考live555的DarwinInjector类实现,咱们这里直接修改spydroid中的RTSPClient就可以实现ANNOUNCE/SETUP/PLAY/RTP过程了,具体流程源代码及协议流程也可以参考“用Darwin和live555实现的直播框架”中的描述。


Android采集端下载:http://pan.baidu.com/s/1kTwrasB EasyDSS(Win)服务器下载:http://pan.baidu.com/s/1ntoFSSh EasyDSS(Linux)服务器下载:http://pan.baidu.com/s/1c0b6bUo

使用方法与博客“基于Darwin实现的分布式流媒体直播服务器系统”中EasyIpCamera的方法一致,只需要配置EasyDSS服务器CMS的地址和端口号,就可以接入到EasyDSS,后续所有流程与EasyIpCamera类似,只有当有客户端请求实时视频的时候才会推送音视频流,其他情况只与CMS连接保活,流媒体处于Idle状态。


实时效果:经过测试对吧,延时性与网络和手机的相关性很大,不同网络条件,不同手机硬件,可能对比出的延时效果不一样,用三星Glaxy3手机,在网络情况比较好的情况下,实时音视频的延时大概在1.3s(公网传输)左右:

\

图 - 连续测试2"52',延时1.35s


\

图 - 连续测试9"17'',延时1.58s


未来还会继续扩展和优化Android实时音视频采集程序,包括加入录像、抓图、软编码、对讲、抖动控制、录像上传等等方面,欢迎大家共同交流和进步!


0 0
原创粉丝点击