浏览器与android移动端视频互播技术实现
手机端与平台之间的视频直播功能,主要通过集成多种开源视频框架以及采购第三方视频直播服务器产品来实现预定业务需求。视频直播对话功能的实现,主要经历了三个阶段:利用开源视频框架实现视频直播、采购第三方视频服务器实现视频直播、系统平台集成开源框架实现视频互播。
图1.视频互播逻辑框架
1 利用开源视频框架实现视频直播
首先,视频流转播需要独立服务器软件构建视频流转播通道,经过框架调研与分析,我们选择SRS服务器软件作为视频转播服务器软件,而SRS是基于Linux操作系统的服务器软件。通过配置搭建CentOS服务器虚拟机作为SRS软件的基础系统环境,再安装配置开源SRS流媒体服务器软件作为推流和播流的服务软件,为视频直播模块的开发提供基础的测试环境。流媒体服务器(SRS)在视频流播放的过程中,起到建立视频流通道的作用,每个唯一的URL地址代表一个视频流通道,推流和拉流都是针对该视频流通道的操作。流媒体服务器同时可以担负起上千条视频流通道转发操作。
其次,手机端视频直播客户端采用开源的主流yaesa框架,实现了较好视频推流效果。依据业务需求把yaesa推流模块集成封装,顺利合并到原有的Android系统框架中,完成android客户端的视频推流功能,将rtmp格式视频流推送到流媒体服务器(SRS)的视频流通道地址。
再次,系统平台的视频画面播放功能采用video.js播放框架实现,video.js是基于html5的网络视频播放器,根据指定的视频流通道地址从流媒体服务器自动拉取rtmp格式视频流,并播放实时的视频画面。Web页面中嵌入多个video控件对象,从多个视频流通道读取视频流,实现了多视频直播画面窗口效果。
2 采购第三方视频服务器实现视频直播
为了保障视频流转发过程的稳定性,从硬件厂商采购了第三方视频服务器TFMS,包含硬件设备和流媒体服务器软件两个部分,替换开源流媒体服务器软件SRS产品,其发挥的视频流转发作用与SRS是一样。
对于系统功能实现来说,无需新增开发工作量,只需要修改视频流通道地址url即可实现流媒体服务器的切换。
3 系统平台集成开源框架实现视频互播
上述第一阶段实现了视频流从手机端到浏览器端的单向传播。根据业务需求的深入,需要再实现视频流从浏览器端到手机端的单向传播,构建两条双向视频流通道,从而达到视频播放互动对话的效果。
技术实现上,需要两个方面的技术准备。浏览器集成插件从摄像头和麦克风获取视频流和声音,并推流到指定的视频流通道url;手机端集成拉流框架,从指定视频流通道url拉取视频流和声音,并播流到播放窗口控件中。
系统平台的推流插件方面,通过市场产品调研和比较,选择了NodeMediaClient Web推流框架,该框架基于flash实现了连接PC的Camera和microphone硬件设备端口,直接获取Camera视频流和microphone声音,并以rtmp格式把视频流推送到流媒体服务器的指定视频流通道url。
手机端采用vitamio播流框架,从指定的视频流通道url拉取视频流,并在手机端弹出视频播放的浮动窗口,该窗口中实时播放拉取的rtmp格式视频流播放,从而完成从浏览器端到手机端的视频流的推流和拉流过程。
- Android的多媒体技术——MediaPlayer实现音频与视频的播放
- [置顶] Android开发实战使用(VR技术实现360°全景视频播放功能)
- Android小视频录制技术实现
- Android IOS WebRTC 音视频开发总结(七十)-- 移动端音视频技术优化的七个方向
- javascript实现浏览器菜单技术
- Android实现XML解析技术
- IBM推新编码系统 实现高清视频技术大突破
- android实现自己的浏览器
- Android实现XML解析技术
- Android实现数据存储技术
- 15_传智播客Spring2.5视频教程_使用JDK中的Proxy技术实现AOP功能
- android利用WebView实现浏览器的封装
- 利用 android手机DLNA功能,实现手机视频无线播放到电脑、电视
- 【技术原创】如何在Winform程序中播放视频及实现播放列表
- 探讨一下Android平台的视频类应用开发的技术研究点
- 利用DPAPI技术,实现浏览器地址栏字符串的加密
- Android开发实现的IntentUtil跳转多功能工具类【包含视频、音频、图片、摄像头等操作功能】
- Android之SurfaceView实现视频播放
- 15_传智播客Spring2.5视频教程_使用JDK中的Proxy技术实现AOP功能 2
- Android教程之实现动作感应技术