Android手機直播系統開發介紹

近兩年直播熱的興起也帶動了直播開發行業的崛起,每個人都想要去吃直播開發這塊蛋糕。但這塊蛋糕也不是這麼容易吃到的,在激烈的市場競爭下,有幾個大的直播平臺始終佔據着市場中較大的份額,也有一些小的公司承受不住衝擊倒下,只有擁有高精尖的技術,才能夠在市場中擁有一席之地。直播開發不是一件能夠容易完成的事情,安卓和蘋果對於搭建的要求就不一樣,今天我們就先了解一下安卓如何搭建直播系統。
511

如果一上來就要去搭建一個直播系統,基本是不可能的,首先我們要從總體上了解直播到底是什麼。手機直播要實現的就是將手機採集到的視頻和音頻經過一定的處理後發送到CDN,然後傳輸到各個終端的過程。主要包含以下過程:
一、採集
採集主要包含視頻採集和音頻採集,涉及到攝像頭及麥克風等設備。視頻主要是通過攝像頭採集,涉及到攝像頭的操作和一些參數的設置,很多安卓手機存在兼容性問題,需要較好的處理。音頻主要通過麥克風進行採集,有時一些手機爲了進行連麥功能要進行回聲消除。
二、處理
視頻處理。現在直播間中美顏功能一定是標配了,對主播的形象有一個很大的提升,,也可以添加一些好玩的卡通貼紙,也會吸引更多的粉絲去觀看。美顏SDK基於人臉識別技術打造,優秀的SDK需要在添加美白磨皮等美顏功能後還不降低清晰度,不會過度磨皮,顯得美顏過度,視頻失真。目前圖片上的美顏功能已經較爲成熟,視頻美顏功能還需要不斷地完善。
音頻處理。有時直播間只有主播一人說話的話會顯得略有尷尬,這時候就需要一些聲音來緩解尷尬,比如笑聲或者鼓掌聲。主播可以讓附加的聲音直接播放出來,這樣麥克風就可以同時錄製主播聲音和附加聲音,但這種處理存在一個問題就是在主播戴上耳機或者進行回聲消除處理的時候,附加聲音就不會收錄進去。以後針對這個功能還需要有更多的處理。
三、編碼
通過攝像頭和麥克風我們可以採集到相應的數據,把這些數據直接進行傳輸的話,佔用的帶寬會很大,容易造成資源的浪費。這時就需要對數據進行編碼處理。目前我們使用的是H。264編碼標準。H.264擁有較高的編碼效率,在同等圖像質量下,採用H.264技術壓縮後的數據量只有MPEG2的1/8,MPEG4的1/3,且h.264視頻畫面質量高,容錯率高而且在網絡傳輸中所需帶寬更少,經濟性高。
其次,編碼分爲軟編碼和硬編碼。軟編碼採用CPU進行編碼,實現簡單直接參數調整方便,升級易,但是CPU負載重,性能要比硬編碼差一些。硬編碼採用非CPU進行編碼,性能較高。直播平臺如果想要稍高一點的清晰度,一般選擇硬編碼。編碼要在分辨率,幀率,碼率,GOP等參數設計上找到最佳平衡點。
對音頻進行編碼也可以分爲軟編和硬編兩種。軟編則下載相應的編碼庫,寫好相應的jni,然後傳入數據進行編碼。硬編則是使用Android自身提供的MediaCodec。
四、打包
數據在傳輸過程中需要定義一定的格式進行傳輸,這樣傳輸到對端的時候纔可以被正確的解析出來,打包一般需要相應的協議:TCP協議(Transmission Control Protocol )傳輸控制協議是一種面向連接的、可靠的、基於字節流的傳輸層通信協議。TCP爲了保證文件傳輸的可靠性,給每一個包一個序號,同時序號也保證了從傳送到接收端實體包的順序接收。
RTMP協議、http-hlv協議等都是打包過程中需要用到的協議。
五、差網絡處理
好的網絡狀況下,視頻傳輸流暢,不會堆積音視頻造成視頻延遲、卡頓,而較差的網絡狀況下,音視頻數據發不出去,就容易造成卡頓延遲,需要我們對音視頻進行處理,一般有以下幾個方式:緩存區設計、丟幀處理、網絡檢測、降碼率處理。
六、發送
經過各種處理,需要將數據發送出去,這一步較爲簡單,不論是RTMP還是HTTP-HLV都可以通過TCP建立連接。
以上幾個步驟就是Android端搭建一個直播平臺的基本流程了,這樣看來想要自己搭建一個系統看起來並不太現實,搭建直播系統最簡單有效的方式就是委託給專門搭建直播系統的開發公司,可以保證系統從開始搭建到最後運營的穩定流暢,可以選擇我們這樣的公司,聯繫我們可以看我的個人資料。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章