live555的源碼其實作爲學習代碼是相當不錯的,今天搭建這個服務器程序主要是爲了測試:
測試什麼呢?
在客戶端發送SDP後,客戶端會告訴你,往我的哪個端口發送數據RTP/RTCP端口.
那麼現在問題來了:
正常情況下,是必須客戶端先給服務器發送數據了,這樣服務器才能給設備發送數據。只有這樣路由器纔不會被數據進行攔截.
但是RTP包服務器先主動發送給客戶端的? 這些數據難道不會直接被路由器給屏蔽掉???
OK,我們先開始搭建RTSP Server:
1.到官網下載最新的源碼
官網: www.live555.com
下載地址:
http://www.live555.com/liveMedia/public/
2.編譯
./genMakefiles linux
make
3.啓動程序
編譯完成之後,會在mediaserver目錄下生成可執行文件live555MediaServer
我們來啓動程序:
接下來我們用VLC直接進行訪問就可以了.
問題:
因爲第一個RTP包是服務器主動發送給客戶端的。
那麼按照上圖的模型,我們如何確保服務器準確的把RTP投送到終端上來呢?
接下來要進行驗證的東西:
1.live555 客戶端如何檢測自己的IP? 這個IP應該是外網的,可以被訪問到的/?