流媒體開篇

      很長時間沒有寫博客了,一直在探討本身的人生問題。最後也沒有一個結果,應該是內心上給本身放了很長的一段假,如今決定調整心態從新回到工做中。      在從此的一年工做中,我將從事流媒體技術方面的研究。 具體是想實現一個手機直播的平臺。 前期進行了相關的調研。目前能夠採用的技術大體以下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的兼容不好?

 

 

  最近這段時間會一直跟進這個方面,打算出一個專題系列,主要本身技術比較弱, 算是對本身的督促。 若是有相關認識能給予一些方向性的知道, 本人感激涕零。

相關文章
相關標籤/搜索