最新手机採集推送直播监控以及EasyDarwin开源流媒体平台的版本号及代码:

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

图 - Android在手持设备中的应用


一步一步来,我们先实现Android手机的音视频採集与上传的实时监控功能。Google Code上有一个开源项目:spydroid-ipcamera,spydroid能在Android手机中建立一个精简的HTTP Server和RTSP Server,功能相似于一般的IpCamera,既能够通过网页訪问摄像机并改动监控配置,还能通过http或者rtsp协议,获取监控的实时音视频,并且从其代码结构中。能够看出。spydroid已经实现了RTSPServer、RTSPClient、RTP、RTCP、H264、AAC...等等功能,总之,咱们须要的Utility都已经具备了。仅仅要将这些功能组合到一块就能实现咱们要的直播需求了。

图 - Android实现IPCamera的功能


在之前的博客“基于Darwin实现的分布式流媒体直播server系统”中。我们用Windows的摄像头和麦克风分别採集音视频数据,编码成H264和AAC。再用RTP打包。推送到Darwin流媒体server,实现直播。相同,我们參考EasyIpCamera的设计方法,App启动后,连接并保活至中心管理server,接收来自CMS的控制命令。

採集安卓摄像头视频和mic声音,进行H264和AAC编码(这里我们仅仅參考spydroid实现了硬编码。软编码在兴许中将会更新进来。只是经过尝试,眼下大部分Android音视频採集都支持硬编码),再通过RTSP和RTP,将实时音视频数据推送到流媒体server,并由流媒体server进行转发和分发,实现直播。

图 - Android接入EasyDSS


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

Android採集端下载:http://pan.baidu.com/s/1kTwrasB   EasyDSS(Win)server下载:http://pan.baidu.com/s/1ntoFSSh  EasyDSS(Linux)server下载:http://pan.baidu.com/s/1c0b6bUo

用法与博客“基于Darwin实现的分布式流媒体直播server系统”中EasyIpCamera的方法一致,仅仅须要配置EasyDSSserverCMS的地址和port号,就能够接入到EasyDSS。兴许全部流程与EasyIpCamera相似,仅仅有当有client请求实时视频的时候才会推送音视频流,其它情况仅仅与CMS连接保活,流媒体处于Idle状态。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGllamlhc2h1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" width="360" height="600" />

图 - Android採集端配置界面

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGllamlhc2h1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="600" height="255" alt="" />

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


watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGllamlhc2h1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="600" height="280" alt="" />

图 - 连续測试9'17''。延时1.58s

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


------------------------------------------------------------

本文转自www.easydarwin.org,很多其它开源流媒体解决方式。请关注我们的微信:EasyDarwin 


手机Android音视频採集与直播推送,实现单兵、移动监控类应用的更多相关文章

  1. 手机Android音视频采集与直播推送,实现单兵、移动监控类应用

    从安卓智能手机.平板,到可穿戴的Android Ware.眼镜.手表.再到Android汽车.智能家居.电视,甚至最近看新闻,日本出的几款机器人都是Android系统的,再把目光放回监控行业,传统监控 ...

  2. EasyRTMP实现的一套简单、高效、易用的全平台(Windows/Linux/ARM/Android/iOS)RTMP直播推送库

    本文转自EasyDarwin开源团队成员Kim的博客:http://blog.csdn.net/jinlong0603/article/details/52938980 EasyRTMP介绍 Easy ...

  3. android音视频点/直播模块开发

      音视频 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 随着音视频领域的火热,在很多领域(教育,游戏,娱乐,体育,跑步,餐饮,音乐等)尝试做音视频直播/点播功能,那么作为开发一个小白, ...

  4. Android音视频点/直播模块开发实践总结-zz

    随着音视频领域的火热,在很多领域(教育,游戏,娱乐,体育,跑步,餐饮,音乐等)尝试做音视频直播/点播功能.那么作为开发一个小白,如何快速学习音视频基础知识,了解音视频编解码的传输协议,编解码方式,以及 ...

  5. Android 音视频开发入门指南

    Android 音视频从入门到提高 —— 任务列表 http://blog.51cto.com/ticktick/1956269(以这个学习为基础往下面去学习) Android 音视频开发学习思路-- ...

  6. 基于EasyDarwin EasyPusher实现Android手机直播推送功能

    EasyPusher直播推送在之前就已经稳定支持了Windows.Linux.ARM上的RTSP直播推送功能,配合EasyDarwin开源流媒体服务器,延时基本在1s以内,这个技术方案经过一年多时间, ...

  7. 用DirectShow实现视频採集-流程构建

    DirectShow作为DirectX的一个子集,它为用户提供了强大.方便的多媒体开接口,而且它拥有直接操作硬件的能力,这使得它的效率远胜于用GDI等图形方式编写的多媒体程序.前面一篇文章已经对Dir ...

  8. Android 音视频开发学习思路

    Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的.只能通过一点点的学习和积累把这块的知识串联积累起来. 初级入门篇: Android 音视频开发(一) ...

  9. Android 音视频开发(一) : 通过三种方式绘制图片

    版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/7456956.html 在 Android 音视频开发学习思路 里面,我们写到了,想要逐步入门音视频开发,就 ...

随机推荐

  1. Android socket 使用PrintWriter和BufferedReader发送和接收出现乱码问题解决

    项目中用到了Android和C++的通信.选择了用socket 发送字符的方式,一開始使用的代码是: socket=new Socket(); InetSocketAddress isa = new ...

  2. iOS-UITextField 全面解析

    iOS中UITextField 使用全面解析 建议收藏,用到的时候来这里一查就都明白了 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField ...

  3. m_Orchestrate learning system---十、解决bug最根本的操作是什么

    m_Orchestrate learning system---十.解决bug最根本的操作是什么 一.总结 一句话总结:多学多练,遇到bug超级轻松 1.如何查看js代码的异常? 开发者选项里面可以查 ...

  4. Defining and using constants from PySide in QML

    Defining and using constants from PySide in QML This PySide tutorial shows you how to define constan ...

  5. mysql裸文件备份XtraBackup (innobackupex)

    结构如下: 热备分为逻辑备份和裸文件备份. 裸文件备份比逻辑备份在速度上更快一些,因为它在底层复制数据文件.世界上唯一一款开源的,能够对INNODB和XtrDB数据库进行热备的开源工具. 他的优点是备 ...

  6. Kettle学习系列之Kettle的起源

    不多说,直接上干货! Kettle起源于十年以前,本世纪初.当时啊,ETL工具千姿百态,比较流行的工具有50个左右,ETL框架数量比工具还要多些. 根据这些工具的各自起源和功能可以分为以下4种类型,如 ...

  7. 唯品会API网关设计与实践--转

    原文地址:https://609518.kuaizhan.com/86/70/p4108366952248f 刘璟宇Leo 唯品会资深研发工程师,在大型高性能分布式系统设计和开发方面有丰富的经验.目前 ...

  8. NEON基本知识

    http://blog.csdn.net/EmSoftEn/article/details/51834171 http://blog.csdn.net/yxnyxnyxnyxnyxn/article/ ...

  9. Linux部署之批量自动安装系统之TFTP篇

    1.         安装:yum install tftp-server –y   2.         配置tftp文件开启tftp功能   3.         开启依赖服务xinetd   4 ...

  10. 优动漫PAINT基础系列之拾色器教学

    在优动漫PAINT中有类似Photoshop的拾色器功能么?在优动漫PAINT中,可以直接输入颜色数值选择颜色么?当然是可以的啦!怎么呼出拾色器界面~ 看这边... 前段时间小编有收到一些小伙伴的疑问 ...