FMUSER更輕鬆地傳輸視頻和音頻!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->荷蘭語
sq.fmuser.org ->阿爾巴尼亞人
ar.fmuser.org ->阿拉伯語
hy.fmuser.org - >亞美尼亞
az.fmuser.org ->阿塞拜疆
eu.fmuser.org ->巴斯克
be.fmuser.org ->白俄羅斯語
bg.fmuser.org - >保加利亞
ca.fmuser.org ->加泰羅尼亞語
zh-CN.fmuser.org ->中文(簡體)
zh-TW.fmuser.org - >中國(繁體)
hr.fmuser.org ->克羅地亞語
cs.fmuser.org ->捷克
da.fmuser.org ->丹麥語
nl.fmuser.org - >荷蘭
et.fmuser.org ->愛沙尼亞語
tl.fmuser.org ->菲律賓
fi.fmuser.org ->芬蘭語
fr.fmuser.org - >法國
gl.fmuser.org ->加利西亞語
ka.fmuser.org ->喬治亞
de.fmuser.org ->德語
el.fmuser.org - >希臘
ht.fmuser.org ->海地克里奧爾語
iw.fmuser.org ->希伯來語
hi.fmuser.org ->印地語
hu.fmuser.org - >匈牙利
is.fmuser.org ->冰島語
id.fmuser.org ->印尼語
ga.fmuser.org ->愛爾蘭
it.fmuser.org - >意大利
ja.fmuser.org ->日語
ko.fmuser.org ->韓文
lv.fmuser.org ->拉脫維亞
lt.fmuser.org - >立陶宛
mk.fmuser.org ->馬其頓語
ms.fmuser.org ->馬來語
mt.fmuser.org ->馬耳他語
no.fmuser.org - >挪威
fa.fmuser.org ->波斯語
pl.fmuser.org ->波蘭語
pt.fmuser.org ->葡萄牙語
ro.fmuser.org - >羅馬尼亞
ru.fmuser.org ->俄語
sr.fmuser.org ->塞爾維亞語
sk.fmuser.org ->斯洛伐克
sl.fmuser.org - >斯洛文尼亞
es.fmuser.org ->西班牙語
sw.fmuser.org ->斯瓦希里語
sv.fmuser.org ->瑞典語
th.fmuser.org - >泰國
tr.fmuser.org ->土耳其語
uk.fmuser.org ->烏克蘭語
ur.fmuser.org ->烏爾都語
vi.fmuser.org - >越南
cy.fmuser.org ->威爾士語
yi.fmuser.org - >意第緒語
最近開始接觸視頻直播項目,我也總結了一些視頻直播相關的概念,技術和解決方案。
首先,了解實時視頻的概念。 幾種常見的視頻協議是:RTMP,http-flv,HLS,RTP / RTCP。
然後我們將解釋直播和相關技術的全過程。
1,實時視頻協議
在實況廣播領域中,有兩種類型的實況廣播:交互式實況廣播和非交互式實況廣播。
非交互式現場直播(例如:現場遊行,NBA現場直播,歐洲冠軍聯賽現場直播等)不是高度互動的,因此會延遲10秒或更長時間。 它的特點是來源相對較少,並且適用於多通道轉碼(用戶可以根據網絡條件觀看它)。
交互式實況廣播的典型場景包括表演實況廣播,遊戲實況廣播等。由於對主播和觀眾之間的交互的要求很高,因此這些實況廣播需要在5S之內延遲。 交互式實時廣播的特徵是:來源更多,不適合多通道轉碼,中間服務器僅作為傳輸角色。
實時內容傳輸的媒體是網絡,並且需要相應的協議才能在網絡中傳輸視頻或音頻。 目前,適用於現場場景的通用協議如下。
1. RTMP協議(HTML 5不支持,Flash支持)
RTMP是流媒體協議,它是Adobe的專利協議。 基於TCP,它在中國非常受歡迎。
流行原因:開源軟件和開源庫的支持穩定完整,最常用的流媒體和流媒體解決方案基本上可以穩定運行。 例如:開源librtmp推流庫,服務端具有nginx RTMP插件,拉流具有ijkplayer播放庫。
2. Http-flv協議(HTML 5不支持,閃存支持)
那就是使用HTTP協議來流媒體內容。 HTTP比RTMP更簡單,更廣為人知。 內容延遲也可以是2-5秒,並且打開速度更快,因為HTTP本身沒有復雜的狀態交互。 因此,從延遲角度來看,http-flv比RTMP更好。
3. HLS協議(HTML支持,Flash支持)
HTTP實時流傳輸是Apple提出的基於HTTP的流媒體傳輸協議。 HLS具有很大的優勢:HTML5可以直接打開和播放; 這意味著實時鏈接可以通過微信和其他轉發方式共享,而無需使用瀏覽器安裝任何獨立的應用程序,因此它非常流行。 社交直播應用,僅需要HLS。 基於HLS的實時流URL是一個m3u8文件,其中包含幾個最近的小視頻TS文件。 此播放模式的延遲相對較高(與TS文件的大小有關),並且在同一城市網絡中可以實現5-7秒的延遲。
4. RTP / RTCP協議
實時傳輸協議是互聯網上多媒體數據流的傳輸層協議。 RTCP傳輸交互控制的信令,而RTP傳輸實際的媒體數據。
RTP廣泛用於視頻監控,視頻會議和IP電話,因為視頻會議和IP電話的重要經驗之一就是強大的實時內容。
與上述三種協議相比,RTP與它們之間的一個重要區別是默認情況下使用UDP協議傳輸數據,而RTMP和HTTP基於TCP協議。
使用場景分析:實時音視頻流場景不需要可靠的保證,因此不需要重傳機制。 實時查看圖像和聲音,在網絡抖動時丟失一些內容,使圖片模糊和啟動畫面並不重要。 為了重新傳輸,TCP將導致延遲和異步。 如果某個內容部分由於重傳而在一秒鐘後到達,則整個對話將延遲一秒鐘。 隨著網絡抖動,延遲將增加到兩秒或三秒。 如果客戶端不處理回放,則直接廣播體驗將受到嚴重影響。 如何優化,將在下面的文章中進行解釋。
結論:在選擇直播協議時,如果選擇RTMP或http-flv,則意味著存在2-5秒的內容延遲,但是就打開延遲而言,http-flv比RTMP更好。 HLS的內容延遲為5到7秒。 為實時廣播選擇RTP可以將實時廣播延遲1秒。 但是,據我們所知,主要的CDN製造商不支持基於RTP的實時廣播,因此當前的國內主流是RTMP或http-flv。
2,視頻直播過程
與實況視頻相關的技術過程是:實時視頻流採集---視頻流編碼---視頻流傳輸---視頻流解碼---視頻播放。
1.實時視頻捕獲的想法
a)通過在Android相機拍攝預覽中設置setpreviewcallback,可以實現onpreviewframe界面來實時捕獲每個視頻流的數據。
b)通過Android mediarecorder,將localsocket綁定到setoutputfile函數中。
c)流媒體服務器模式,使用ffmpeg或getstreamer獲取攝像機視頻。
2.視頻壓縮編碼的實現
a)未經編碼,原始的yuv420sp視頻幀直接通過套接字傳輸。
b)JEPG將原始的yuv420sp視頻幀壓縮為H.264,然後進行傳輸。
c)H.264 / avc。 原始的yuv420sp視頻幀被壓縮為H.264,然後進行傳輸。 基於H264的常見開源編碼器包括JM,x264,t264,hdot264等
d)。 mpeg4。 將原始的yuv420sp視頻幀壓縮為MPEG4,然後進行傳輸
3.視頻傳輸的想法
一種) 。 插座傳輸
b)。 HTTP傳輸
C) 。 RTP / RTSP傳輸
d)。 流媒體服務器模式,例如live555等
4.視頻解碼的實現
一種) 。 編碼對應的解碼器
5.視頻播放的想法
一種) 。 通過Android videoview
b)。 通過Android Mediaplay
C) 。 直接通過畫布粘貼框架圖像
|
輸入電子郵件以獲取驚喜
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->荷蘭語
sq.fmuser.org ->阿爾巴尼亞人
ar.fmuser.org ->阿拉伯語
hy.fmuser.org - >亞美尼亞
az.fmuser.org ->阿塞拜疆
eu.fmuser.org ->巴斯克
be.fmuser.org ->白俄羅斯語
bg.fmuser.org - >保加利亞
ca.fmuser.org ->加泰羅尼亞語
zh-CN.fmuser.org ->中文(簡體)
zh-TW.fmuser.org - >中國(繁體)
hr.fmuser.org ->克羅地亞語
cs.fmuser.org ->捷克
da.fmuser.org ->丹麥語
nl.fmuser.org - >荷蘭
et.fmuser.org ->愛沙尼亞語
tl.fmuser.org ->菲律賓
fi.fmuser.org ->芬蘭語
fr.fmuser.org - >法國
gl.fmuser.org ->加利西亞語
ka.fmuser.org ->喬治亞
de.fmuser.org ->德語
el.fmuser.org - >希臘
ht.fmuser.org ->海地克里奧爾語
iw.fmuser.org ->希伯來語
hi.fmuser.org ->印地語
hu.fmuser.org - >匈牙利
is.fmuser.org ->冰島語
id.fmuser.org ->印尼語
ga.fmuser.org ->愛爾蘭
it.fmuser.org - >意大利
ja.fmuser.org ->日語
ko.fmuser.org ->韓文
lv.fmuser.org ->拉脫維亞
lt.fmuser.org - >立陶宛
mk.fmuser.org ->馬其頓語
ms.fmuser.org ->馬來語
mt.fmuser.org ->馬耳他語
no.fmuser.org - >挪威
fa.fmuser.org ->波斯語
pl.fmuser.org ->波蘭語
pt.fmuser.org ->葡萄牙語
ro.fmuser.org - >羅馬尼亞
ru.fmuser.org ->俄語
sr.fmuser.org ->塞爾維亞語
sk.fmuser.org ->斯洛伐克
sl.fmuser.org - >斯洛文尼亞
es.fmuser.org ->西班牙語
sw.fmuser.org ->斯瓦希里語
sv.fmuser.org ->瑞典語
th.fmuser.org - >泰國
tr.fmuser.org ->土耳其語
uk.fmuser.org ->烏克蘭語
ur.fmuser.org ->烏爾都語
vi.fmuser.org - >越南
cy.fmuser.org ->威爾士語
yi.fmuser.org - >意第緒語
FMUSER更輕鬆地傳輸視頻和音頻!
聯絡我們
分類
電子通訊