【转载】 了解实时媒体的播放(RTP/RTCP 和 RTSP)
http://blog.csdn.net/span76/article/details/12913307
?
離線媒體只是用 Http協(xié)議去讀取服務(wù)器端文件而已,而對(duì)于實(shí)時(shí)直播如何實(shí)現(xiàn),?這里就要用到 RTP/RTCP協(xié)議了
RTP/RTCP
RTP是基于 UDP協(xié)議的, UDP不用建立連接,效率更高;但允許丟包, 這就要求在重新組裝媒體的時(shí)候多做些工作
RTP只是包裹內(nèi)容信息,而RTCP是交換控制信息的,Qos是通過(guò)RTCP實(shí)現(xiàn)的
RTP中一個(gè)重要的概念是 session, 對(duì)于一個(gè) audio stream 可以是一個(gè)session 但可以有多個(gè) contributor, 也可以有多個(gè)監(jiān)聽(tīng)者, 比如網(wǎng)絡(luò)電話
?
做實(shí)時(shí)視頻流,先用采集設(shè)備,直接把視頻做成 H.264 的 NALu,而后通過(guò) RTP打包,傳輸給客戶端
有一篇文就是介紹如何把 NALu 用RTP打包的
http://www.rosoo.net/a/201108/14896.html
?
?
?
RTSP
但還缺少一個(gè)環(huán)節(jié), 應(yīng)用程序?qū)?yīng)的是 play, seek, pause, stop, 如何把應(yīng)用指令和 RTP的傳輸結(jié)合起來(lái).
RTSP正是為了解決這個(gè)問(wèn)題產(chǎn)生的
RTSP是應(yīng)用層的協(xié)議和 HTTP協(xié)議很相似,客戶端和服務(wù)器通過(guò)傳遞文本,通知如何進(jìn)行 RTP/RTCP信息的交互
從圖中,我們可以看到 RTSP也可以不用 RTP, 而用TCP來(lái)實(shí)現(xiàn)流媒體傳遞
RTSP的 client 連接 server 多通過(guò) SDP(會(huì)話描述協(xié)議)傳遞信息
?
[html]?view plaincopy?
? ?Session description
????????? v=?? (protocol version)
????????? o=?? (owner/creator and session identifier)
????????? s=?? (session name)
????????? i=* (session information)
????????? u=* (URI of description)
????????? e=* (email address)
????????? p=* (phone number)
????????? c=* (connection information - not required if included in all media)
????????? b=* (zero or more bandwidth information lines)
????????? One or more time descriptions ("t=" and "r=" lines, see below)
????????? z=* (time zone adjustments)
????????? k=* (encryption key)
????????? a=* (zero or more session attribute lines)
????????? Zero or more media descriptions
通過(guò)這些信息,client 就可以連接正確的 RTP session
關(guān)于RTMP和RTSP的區(qū)別
RTMP: RTM(Messaging)P 是?Adobe公司自己的規(guī)范,為Flash播放器和服務(wù)器之間音頻、視頻和數(shù)據(jù)傳輸開(kāi)發(fā)的私有協(xié)議。
?
轉(zhuǎn)載于:https://www.cnblogs.com/littleKing163/p/4823074.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的【转载】 了解实时媒体的播放(RTP/RTCP 和 RTSP)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 乌鲁木齐半山铭邸是毛坯房还是精装修?
- 下一篇: html你可能还不知道的一些知识点