天天看點

關于RTP和SRT之間的互操作性,你需要了解什麼?

文 /  Mark Cymontkowski

譯 / John

原文

https://www.srtalliance.org/interoperability-between-rtp-and-srt/

許多企業現有的内部部署廣播工作流程都基于RTP協定,但是您是否知道SRT可以通過在不可靠的網絡(例如公共網絡)上利用SRT隧道傳輸RTP來擴充這些工作流程的範圍?

在這篇文章中,我們将以一個非常簡單的端到端工作流為例向您展示這一過程。下圖顯示了如何使用RTP将MPEG2傳輸流從視訊編碼器發送到受保護網絡(例如企業LAN或MPLS租用線路)内的視訊解碼器。

通過可靠網絡(例如區域網路)進行RTP傳輸

關于RTP和SRT之間的互操作性,你需要了解什麼?

用公共網際網路取代專用網絡并不是那麼簡單,因為不可靠的網絡會引入資料包丢失和抖動。此外,流在離開或進入企業網絡時必須穿過防火牆。這期間内容不再受到保護,非常容易被暴露。

RTP通過不可靠的網絡傳輸,如公共網際網路

關于RTP和SRT之間的互操作性,你需要了解什麼?

SRT能夠恢複丢失的資料包,也能加密内容和周遊防火牆,這使其非常适合用作跨公共網際網路的隧道。

以下是它的工作原理:

RTP流量被發送到UDP接收器,UDP接收器通過SRT連接配接轉發包括RTP報頭在内的MPEG-TS有效載荷;而在接收器端,流作為UDP播放,但由于RTP報頭仍然存在,是以它會将本地RTP流發送到現有的RTP解碼器。

通過SRT在不可靠的網絡(例如公共網際網路)上隧道傳輸RTP

關于RTP和SRT之間的互操作性,你需要了解什麼?

可以使用開源SRT包中的srt-live-transmit示例應用程式來評估此配置。來自編碼器的源RTP流必須指向SRT發送器的UDP輸入并将目标位置處接收器的UDP輸出發送到解碼器的RTP輸入端口。

由于應用程式在從UDP讀取資料時期望沒有RTP頭的MPEG-TS流量,是以預設情況下,它被配置成為每UDP包接收1316位元組(7個MPEG-TS幀)的有效載荷。該指令行選項用于增加SRT有效負載大小。

這些是發送方(UDP到SRT)和接收方(SRT到UDP)的兩個srt-live-transmit示例指令行:

關于RTP和SRT之間的互操作性,你需要了解什麼?

在該示例中,源(例如RTP編碼器)正在将RTP流發送到192.168.0.20:2000。發送方端srt-live-transmit接收包括端口2000上的RTP報頭在内的MPEG-TS流并偵聽端口1000上的傳入接收方連接配接。在我們的示例中,運作發送方應用程式的計算機的IP位址為192.168.0.10。不同機器上的接收器應用程式作為呼叫者連接配接到伺服器,接收SRT流并将該流作為UDP資料輸出到IP位址為192.168.0.30和端口3000的RTP接收器(例如解碼器)。

注意:使用SRT 1.4版時,在使用srt-live-transmit時不再需要指定有效負載和/或塊大小(-c)。

類似地,具有FEC(SMPTE 2022-1前向糾錯)的備援RTP可以通過SRT連接配接進行隧道傳輸。FEC列和行資料包的額外UDP流可以通過兩個額外的SRT連接配接進行路由。但是,所有三個SRT連接配接都可以通過使用SRT複用在單個UDP端口上發送,SRT複用是核心協定的一部分。

使用SRT複用通過SRT與FEC隧道傳輸RTP

關于RTP和SRT之間的互操作性,你需要了解什麼?

我們可以進一步擴充此設定以支援備援RTP(SMPTE 2022-7)工作流程。由于RTP報頭在備援設定的任一路徑上保持不變,是以系統仍可在接收器側同步多個RTP流。

通過SRT隧道傳輸多路徑RTP以實作備援

關于RTP和SRT之間的互操作性,你需要了解什麼?
此時,值得一提的是,在IBC2019時間範圍内,本機備援工作流程将進入SRT協定。這意味着每個啟用SRT的端點都可以使用此功能進而大大簡化了安裝。
關于RTP和SRT之間的互操作性,你需要了解什麼?

————————————————

版權聲明:本文為CSDN部落客「LiveVideoStack_」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:

https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/101043156

「視訊雲技術」你最值得關注的音視訊技術公衆号,每周推送來自阿裡雲一線的實踐技術文章,在這裡與音視訊領域一流工程師交流切磋。
關于RTP和SRT之間的互操作性,你需要了解什麼?

繼續閱讀