怎麼使用jrtplib傳輸一個視頻

 可以抽象出幾個獨立的模塊
1.網絡傳輸
2.視頻
  2.1 視頻源採集
  2.1 視頻壓縮、還原
  2.2 視頻回放

如果要源代碼,估計是不可能了,每個環節都是蠻大的工程,
不過我可以告訴你每個模塊需要注意的環節

1.網絡傳輸
  1.1)TCP不太適合做點對點傳輸,所以必須將協議層定位在UDP上
  1.2) UDP互聯網上傳輸是不可靠的,在數據包超過1400字節的情況下,易出現路由器捨棄包,如何解決多媒體數據可靠到達呢,有2種不同的方向,各有所長:
    1.2.1) JRTP模式,網絡傳輸層自身不去做數據包拆組包工作,要求視頻模塊控制到最後的視頻數據在1400字節以內,由於視頻不可靠到達,並不會影響最終顯示結 果,最多是丟包時有花屏現象,同時JRTP有一個長處,可以在互聯網上做組播。短處顯而易見,無法解決不可靠的問題,視頻還好,如果是文件傳輸的話,就會 出大問題了,一般都接收不完全的。
    1.2.2)擴展可靠UDP協議,類似的開源項目有Enet,UDT,Raknet,他們都不限制調用者數據包長度,內部都封裝了可靠送達機制,缺點就是沒法做組播。
        Enet到1.2版本以後基本不再更新,Enet有一個BUG,就是在中國的雙網環境下無法做到雙網互通,即電信的A點無法與網通的B點 P2P通訊,優點是穩定,傳輸速度也可以。
        UDT現在的版本是4.1,一直在更新,作者好像是一個美籍華人(贊一個!),優點是傳輸速度超快,幾乎沒缺點,我使用只發現一個BUG,應用程序在 COM模式下會出現退出時程序異常,作者曾答應修正,但是sourceforge一直被禁,也不知道改了沒有。
    Raknet在很多網絡遊戲裏面有使用,我沒看出什麼優點,做得早應該算優點吧,缺點我測試下來,傳輸速度有大問題,在網絡遊戲裏面反正數據量不大,也無所謂,做視頻傳輸,不推薦使用。
  1.3)NAT穿透問題
    這個不算什麼新問題了,自己google吧。

2.視頻
2.1視頻採集
  可在DirectX SDK裏面看範例
2.2視頻壓縮
  現在主流使用.263,.264編碼(FlV即採用該格式)
  源碼比較難找,我也推薦另外一個XVID,這個可以到xvid.org上去下載.
2.3視頻回放
  還是DirectX SDK自己看範例

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