幾個RTP的開源實現
玩了兩天rtp協議,基本把rtsp/rtcp/rtp/rtmp/srtp/strcp/mms,幾個協議的區別和概念弄明白了。
這裡記錄一下。
rtsp:類似使用者介面操作,和Http比較類似,提供播放,停止,加入等功能。注意,這裡rtsp只負責傳送操作命令,實際的音視訊資料,並不由這個協議承載。這是我困惑很久之後才明白的(我是不是太弱了,呵呵)
rtsp協議並沒有規定底層是由tcp還是udp實現,實際操做中,我通過google搜尋發現rtsp確實有tcp和udp兩種實現,我就不上抓包資料了,這個部落格園裡面已經有人幹過了。另外這個也算和http不同的一點,http都是tcp。
rtp : 這個協議是幹累活的,音視訊資料,都由這個協議承載
rtcp: 控制協議,舉個例子,音視訊資料發出去了,發了多少,收到多少,丟了多少,網路延遲多大,這些QOS(Quality of Service)相關的資料,以及音訊同步的資訊。誰來提供,沒錯,就是rtcp。與rtp是兄弟協議,由udp承載資料。
----------------------------------------------------------------------------------------------------------------------
以上是比較標準的東東。
rtmp: 看起來很像ietf的東西,不過是adobe自家的協議,不過後來也開放出來了,基本上可以等同於flash播放的伺服器。有開源實現rtmpdump,有興趣的同學可以自己google一下自己看看。
srtp: 思科與愛立信扣起手搞得,後來也成了ietf標準,可以理解成加密的rtp,主要用於voip,視訊方面?偶不知道。。。。
srtcp:同上。這兩個協議都是相伴而生的。
mms:微軟自己搞的,類似於rtsp協議,暗下不表。覺得這裡很搞笑,不是國際標準,但總還要給他很大的支援,shit。微軟啊,弄了太多不標準了。。。
我不帖包頭分析和協議層次這種東西了,太多了,我只是記錄一下我自己對這些東西的理解,網上大多講得不夠全面,我總結一下。
------------------------------------------------------------------------------------------------------------------------
找了幾個rtp比較知名的開源實現,並且用vc2005編譯通過了。附帶demo。
ortp:linphone專案的子專案,開發語言是c語言,實現了rtp/rtcp協議,沒有實現rtsp協議,如果要用,自己google一下,有比較多的開源實現。自己動手也不算複雜。
jrtplib:專案主頁如下
開發語言是C++,同樣沒有實現rtsp。有喜歡c++的同學可以選擇這個。
live555:這個專案放到這裡,我很糾結,因為live555的野心明顯不是實現幾個協議,人家是要幹票大的。他除了實現了rtsp/rtp/rtcp/各種協議之外,還實現了各種流媒體的分包解析。
上面兩個還算是單純的庫,live555就是一整套解決方案了,只是順便實現幾個協議,呵呵。其他:vlc/mpeg4ip/的rtp相關實現都是使用live555,不多了。
上下載連結
相關推薦
幾個RTP的開源實現
玩了兩天rtp協議,基本把rtsp/rtcp/rtp/rtmp/srtp/strcp/mms,幾個協議的區別和概念弄明白了。 這裡記錄一下。 rtsp:類似使用者介面操作,和Http比較類似,提供播放,停止,加入等功能。注意,這裡rtsp只負責傳送操作命令,實際的音視
HTTP模擬工具【C#/Winform源碼】、Json綁定TreeView控件、使用了MetroModernUI、RestSharp、Dapper.Net、Newtonsoft.Json、SmartThreadPool這幾個主要開源框架
type form num -m 請求 resource dap bool dev HTTP模擬工具 開發語言:C#/Winform開發工具:Visual Studio 2017數據庫: SQLite使用框架:界面-MetroModernUI
Github上的幾個C++開源項目
eve 開發者 pda 問題 col surf view app its ?? http://www.zhihu.com/question/28341521 有人吐槽怎麽下手FreeNOS,上文檔 FreeNOS: FreeNOS Do
1040 有幾個PAT——c實現
1040 有幾個PAT (25 分) 字串 APPAPT 中包含了兩個單詞 PAT,其中第一個 PAT 是第 2 位(P),第 4 位(A),第 6 位(T);第二個 PAT 是第 3 位(P),第 4 位(A),第 6 位(T)。 現給定字串,問一共可以形成多少個 PAT?
最值得程式猿學習的幾個iOS 開源專案
相信從事軟體開發的童鞋應該都有這樣的感觸,不管怎麼學,知識總是學不完的,而且入門一門技術不難,要深入學習一門技術才是真的難。 任何計算機技術,如果不努力學習、進步,就會感覺自己停步不前,沒成就趕不說,還會對自己的自信心也是一個嚴重的打
幾個p2p開源專案[轉]
最近看的幾個開源專案的印象不是專業的評價,就像讀書筆記吧:2、:這是C++版的,他最大特點就是集成了對多個流行P2P檔案格式的支援,有了它可以下載電驢、.torrent等,目前版本是2.2.1.0。對: EDonkey2000, Gnutella, BitTorrent 及G
常見幾個字串函式實現程式碼
(1)size_t strlen(const char *str); size_t strlen(const char *str) { assert(str != NULL); unsigned int cnt = 0; while(*str++) ++cnt
Map-produce算法兩個開源實現
nod min node eat content github 實現 mic data- https://github.com/michaelfairley/mincemeatpy https://github.com/denghongcai/mincemeat-nod
請推薦幾個asp.net下做網站的好的開源框架
b- 開發 開放源代碼 ces dex 生產 推薦 面向對象 塑造 1.We7 CMSWe7 CMS是由西部動力開發的一款充分發掘互聯網Web2.0(如博客、RSS等)的信息組織優勢,將其理念利用到政府企事業網站的構建、組織、管理中的網站建設和管理方面的產品。系統目標:叫創
幾個常用網絡/服務器監控開源軟件
memcached 托管 不能 不足 div ios系統 正在 linux下 tle 想要更清晰的了解你的網絡嗎?沒有比這幾個免費的工具更好用的了。 網絡和系統監控是一個很寬的範疇。有監控服務器、網絡設備、應用正常工作的方案,也有跟蹤這些系統和設備性能,提供趨勢性能分
js 實現每隔幾個字符進行添加字符串
實現 regexp reverse false turn bsp ret var reg function Xreplace(str,length,reversed) { var re = new RegExp("\\d{1,"+length+"}","g");
簡單說下 Winform 的分頁快速開發框架必須要實現的幾個功能之一
重點 del winform over ber 開發 dex color 基本 簡單說下 Winform 的分頁快速開發框架必須要實現的幾個功能之一 分頁非為前端分頁 和 後端分頁,前端分頁只有適用於B/S,B/S的呈現速度遠遠不如C/S,而C/S則沒有這個問題,所以分
圖像處理中幾個基本的處理方法c#代碼實現
位圖 edi windows系統 process 圖案 電視 間接 做了 同步 圖像是人類獲取和交換信息的主要來源,因此,圖像處理的應用領域必然涉及到人類生活和工作的方方面面。隨著人類活動範圍的不斷擴大,圖像處理的應用領域也將隨之不斷擴大。(1)航天和航空技術方面的應用 數
幾個實現分頁的方法
ref charset 方便 ges gin ram ani shortcuts ive 自定義方法 def user_list(request): # user_list = data[0:10] # user_list = data[1
目前最受歡迎的12個Python開源框架,你用過幾個?
python 爬蟲 web 入門 開源 今天給大家帶來了12個在GitHub等開源網站中最受歡迎的Python開源框架。如果你正在學習python,那麽這12個開源框架,千萬別錯過,這些框架包括事件I/O,OLAP,Web開發,高性能網絡通信,測試,爬蟲等。雖說不上是全都有,但也足夠滿足你
CSS3實現的幾個小loading效果
css linear 1.2 普通 dong 500px 交叉 yellow index 昨晚上閑的沒事突然想做幾個小loading效果,下面是昨晚上做的幾個小案例,分享給大家 1.水波loading:這個loading是我覺得非常簡單,但是看上去的效果卻非
幾個常用的Excel開源庫
之前試過 SpreadSheet,該類庫對Excel的操作是基於odbc的,而且還只能使用MFC來操作。當然,可以把SpreadSheet封裝成dll,然後給win32的程式來呼叫,我就是這麼幹的。 但是由於SpreadSheet是基於ODBC的,資料匯出的時候太慢了(實測:大概一秒鐘處理5
Android SurfaceView+MediaPlayer實現幾個不同的視訊輪流播放
MediaPlayer 1)如何獲得MediaPlayer例項: 可以使用直接new的方式: MediaPlayer mp = new MediaPlayer(); 也可以使用create的方式,如: MediaPlayer mp = MediaPlayer.create(t
實現毫秒級和納秒級計數的幾個API--timeGetTime、GetTickCount、QueryPerformanceCounter
Private Declare Function timeGetTime Lib "winmm.dll" () As Long Private Declare Function GetTickCount Lib "kernel32" () As Long Private Declar
Mac鍵盤實現Home End Page UP Page DOWN這幾個鍵
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!