流媒体开篇

      很长时间没有写博客了,一直在探讨本身的人生问题。最后也没有一个结果,应该是内心上给本身放了很长的一段假,如今决定调整心态从新回到工做中。      在从此的一年工做中,我将从事流媒体技术方面的研究。 具体是想实现一个手机直播的平台。 前期进行了相关的调研。目前能够采用的技术大体以下android

  1. darwin做为流媒体服务器, 播放器采用rtsp播放器,例如vlc。 android和iphone采集端须要实现音视频的硬编码和rtsp协议与流媒体服务器的交互nginx

      2. nginx+rtmp 做为流媒体服务器, 播放器采用flowplayer,  andriod和iphone采集端须要实现音视频的应编码和rtmp协议与流媒体服务器的交互。c++

      3. nginx+hls  做为流媒体服务器, 采用分片的方式。 播放器须要实现对m3u8的解析, 苹果的浏览器自己能够。 android和iphone采集须要实现音视频的硬编码, 与流媒体服务器交互方式待定。 服务器端须要对流进行分片。web

      4.  webrtc架构方式,本人c++基础浅薄,这部分工做一直没有开始调研。浏览器

 

  关于双向语音通话或者视频会议的场景,调研过几款开源软件, 服务器

  1. openmeeting  基于red5的视频会议,在几台pc机之间测试效果良好, 可否移植到android和iphone上未知。架构

  2. mumble 目前mumble提供了桌面,android和iphone版, 测试效果 发现 android和pc之间语音交流有回音的出现.iphone

  3. linphone, linphone有android,pc和iphone版,视频通话效果很好。 架构清晰,不过linphone代码超过10万行, 不知道采用linphone架构开发难度是否可控测试

  4. 其余实现方式诸如gtalk,采用xmpp和sip技术。优化

  

  目前在技术选型上遇到一些问题, darwin结构,很难作扩展, 瓶颈卡在视频优化和双向语音交流上, 目前pc端经过浏览器观看直播,并实现语音交流, pc端采集语音没有特别好的办法。 回声消除很难, 目前调研获得的开源的回声消除模块只有speex库实现的比较好。

  nginx+rtmp方式, 能够实现android留的推送,可是iphone对flash的支持很差, 如何开发基于flash的iphone应用比较困难,并且rtmp协议自己的闭源致使不少的地方没办法参考

  nginx+hls 目前所作的工做比较少,还不能提出明确的方案

  webrtc google大牛推的下一代流媒体标准, 目前应用很好, 貌似和ie的兼容不好?

 

 

  最近这段时间会一直跟进这个方面,打算出一个专题系列,主要本身技术比较弱, 算是对本身的督促。 若是有相关认识能给予一些方向性的知道, 本人感激涕零。

相关文章
相关标签/搜索