王晨,顏金堯,蔡洋
(中國傳媒大學媒體融合與傳播國家重點實驗室,北京 100024)
對于超高清(4K、8K)專業(yè)媒體流信號域的實時制作播出,傳統(tǒng)SDI 架構局限性大,傳輸速率較低,需要的電纜數量多且維護成本高,一根電纜僅可承載一路SDI;SDI信號傳輸距離有限;可替代性弱。不同于發(fā)展緩慢、成本較高的SDI 技術,以太網帶寬和交換能力發(fā)展迅速,目前已經發(fā)展到400Gbps 以上,具有傳輸速度快、結構簡單、傳輸距離遠、成本低、兼容性強、覆蓋范圍大、管理便捷、充分利用IP 網絡等多個優(yōu)點[1]。
因而廣電制播系統(tǒng)的采集、制作、播出等從傳統(tǒng)的SDI 架構逐漸向全IP 化架構遷移。為促進IP 技術在實時視音頻領域的應用,目前行業(yè)內基本達成共識采用SMPTE 2019 年發(fā)布的ST 2110 標準系列。ST 2110 系列標準定義了視頻、音頻、其他數據在IP 網絡中的單獨封裝、分發(fā)。研究專業(yè)媒體流IP化的意義重大,可打破現有網絡中媒體制作播出的技術壁壘,充分利用IP 的特點,將所有信號接入IP 中心矩陣,建立IP資源池,實現大帶寬、多格式、跨域協同、遠程制作,為未來的全文件共享、云化做準備。
2014 年,ESPN 建立了世界上第一個廣播電視直播IP 中心系統(tǒng)[2],該系統(tǒng)最初采用ST 2022-6 及ASPEN 的IP 信號標準。2020 年,BBC 威爾士新中央廣場總部使用Grass Valley 的技術支持全球最大的SMPTE 2110 IP 工作流[3]。截止到2020 年底,全球范圍內已知規(guī)模最大的IP 系統(tǒng)是由NBC 部署的Telemundo 超大型IP 化數據中心。CNN 新總部大樓實現IP 化,成為全世界首個完全基于SMPTE 2110 IP 網絡的重要廣播基地[4]。
在國內2018 年廣東臺建設了一個4K 頻道IP 總控系統(tǒng)[5]。2018 年愛奇藝創(chuàng)意制作中心建成IP ST 2110 總控系統(tǒng)。2018 年中央廣播電視總臺建設了2條完整的4K 生產線(其中1 條為全IP 化4K 生產線)。2019 年總臺首次在國慶活動采用全IP 方式實現超大規(guī)模4K 和高清信號的無損高質量回傳和信號分發(fā)。2019 年中國第一輛符合ST 2110 標準的單流4K 超高清全媒體轉播車在貴州臺交付[6]。2021 年中央廣播電視總臺在春晚期間建設全IP 化8K 信號制播生產環(huán)境,實現了4K、8K 和高清的并行直播。2021 年第十四屆全運會期間,總臺轉播系統(tǒng)的核心業(yè)務調度系統(tǒng)實現全IP 架構,畫分和控制調度系統(tǒng)也實現全IP 化。
在整體IP制播系統(tǒng)環(huán)境下,諸多國外廠家和研究人員不斷研發(fā)相關IP 硬件設備和技術來促進廣播行業(yè)的全IP 化。在視頻信號IP 化、解析播放視頻IP 信號等方面的設備類型多樣。 SONY NXLKIP50YNXLK-IP51Y 網關、GV 網關、ROSS Raptor 網關等國外設備以及僅有的國產網關格非IPGate 均可實現將SDI信號根據ST 2110標準封裝為IP流來通過網絡傳輸。Imagine SNP、LAWO 畫面分割器、SONY切換臺等均可接收解析IP信號,并通過顯示器進行視頻畫面觀看。視頻監(jiān)測分析方面,目前僅有Tektronix(泰克)公司的PRISM 示波器提供IP 工作流媒體技術指標分析功能,可以詳細診斷ST 2110 流量問題。此外,N. Ranasinghe 提出了一個可擴展的FPGA 架構,用于ST 2110 端到端的專業(yè)視頻解決方案,是第一個公開發(fā)布的此類硬件架構[7]。
現階段電視臺和各大廠家主要通過硬件網關來實現SDI視頻的IP化和IP視頻信號監(jiān)看,盡管硬件功能較為齊全,但這些國外的硬件設備價格昂貴,連線復雜,采用硬件板卡燒制固定程序,通用性和靈活性不夠。
本文面向ST 2110-20 標準,實現了基于RTP 流的未壓縮基帶視頻在IP 網絡中的解析播放、監(jiān)測分析的軟件系統(tǒng);設計了一套可以運行在高性能通用計算機上的實時IP 解析監(jiān)測的軟件系統(tǒng)裝置,大大提高了性價比,打破了硬件和價格壁壘,更利于靈活研究IP 視頻信號。在IP 視頻解析方面,本文提出設計了緩存算法阻塞隊列長度設計和多線程并發(fā)來實現視頻解析播放。在IP 視頻監(jiān)測分析方面,本系統(tǒng)監(jiān)測分析丟包率、幀頻分布、幀間隔分布、首包處理時延、端到端時延5 個技術指標和主觀觀看畫面效果。通過技術指標和主觀效果的對比分析,本系統(tǒng)的系統(tǒng)設計及實現效果,在一定程度上可對比國外專用設備PRISM 示波器的視頻信號分析功能,在制播IP 化設備國產化和通用化方面,同時對融入電視制作域內的整體監(jiān)控系統(tǒng),多流監(jiān)測方面有重要意義。實驗結果分析證實本文創(chuàng)新提出的IP 視頻阻塞隊列長度設計算法是有效的。
一套完整的基于ST 2110標準的IP化視頻流采集解析監(jiān)測系統(tǒng)設計框架如圖1所示。視頻信號源產生專業(yè)媒體視頻,封裝成ST 2110 標準的IP 流并通過網絡進行傳輸。本系統(tǒng)利用網卡接收IP視頻流信號,根據自主設計的阻塞隊列長度算法,使用阻塞隊列實現實時數據緩存及處理機制可控制化,采用多線程并發(fā)的方式,低門檻與低成本實現了IP基帶視頻流的實時解析與系統(tǒng)監(jiān)測,解決IP視頻系統(tǒng)的數據處理透明可控制化、視頻流解析技術通用化的問題。
圖1 系統(tǒng)設計框架
在實驗系統(tǒng)設計中,數據包的存儲采用了阻塞隊列實時緩存而非直接寫入本地文件,節(jié)約了大量的寫入和讀取磁盤的時間。阻塞隊列采用先進先出模式,當隊列已滿時會等待隊列中的數據消耗,當隊列為空時則等待數據填充,可以解決某個時間段內產生數據的線程與消耗數據的線程之間速度不匹配的問題。
存儲數據包的阻塞隊列1長度的大小和視頻監(jiān)測系統(tǒng)的丟包率、端到端時延的大小密切相關。隊列越長,幀均丟包率越小,時延越大;隊列越短,幀均丟包率越大,時延越小。
針對隊列長度,本文自主設計一種算法,根據不同視頻流格式在網絡條件下的輸入輸出速率變化,設計相應的隊列長度,來得到低丟包率和低時延。該算法適應于高清、超高清等不同清晰度的視頻格式,但在超高清格式中只有逐行掃描格式。
阻塞隊列的輸入速率λ是指每秒采集經網絡傳輸后到達隊列的視頻數據包的速率,可由計算機根據一段時間內接收的數據包個數n_input除以相應時間t_input得到;輸出速率μ是指視頻播放時每秒解析數據包的速率,同樣可由一段時間內解析的數據包n_onput除以相應時間t_onput得到。在實際網絡情況中,網絡狀態(tài)變化復雜,需根據隊列長度算法調整隊列長度,來保證較低的丟包率和時延。
當輸入速率大于輸出速率時,隊列長度L1 等于視頻流輸入速率λ與輸出速率μ的差乘實時視頻時長duration:
當輸入速率小于等于輸出速率時,隊列長度L2等于抖動jitter。抖動是指數據包延遲的變化程度,變化具備隨機性,隊列的輸入和輸出都有抖動。因此本算法采用一種最佳抖動時延處理,通過實際測量無限長隊列長度情況下,在系統(tǒng)穩(wěn)定時的最大抖動隊列長度jitter,并選擇該jitter作為阻塞隊列長度。本文實驗中采取此方法確定隊列長度。
算法偽代碼如下:
算法1:阻塞隊列長度算法輸入:輸入速率和輸出速率1.If μ<λ:2. L = |n_input ÷ t_input - n_output÷t_output|*duration 3.else if μ>=λ:4. L = jitter 5.end;輸出:阻塞隊列長度L
如圖1 系統(tǒng)設計框架所示,該部分可在VS 2019開發(fā)環(huán)境下編寫C++程序完成。
經多次實驗發(fā)現,采集、解析、播放幾項操作均需耗費較多時間,如果按順序依次執(zhí)行,則最終呈現的視頻播放效果差,畫面切換緩慢。因此需采用多線程并發(fā)的形式來提升程序的運行速率,并通過阻塞隊列共享數據,進行線程間通信。程序中視頻數據包的采集緩存、緩存取出、解析、播放與監(jiān)測可以分成5 個并行任務,因而采用5個線程形式實現,提高程序運行效率。線程1 和線程2、3 共享阻塞隊列1 中數據包。線程3和線程4共享阻塞隊列2中完整幀像素數據。
線程1 可利用Winpcap 嗅探網卡捕獲視頻IP 數據包。Winpcap是Windows系統(tǒng)下捕獲和過濾底層網絡數據包、發(fā)送原始數據包到網絡上、收集網絡流量與網絡狀態(tài)的統(tǒng)計信息的一個開發(fā)庫[8]。捕獲數據包的主要步驟為:首先創(chuàng)建一個網絡設備鏈表以獲取本機的適配器,找到并打開網卡來捕獲完整數據包;設置混雜模式、內核緩存區(qū)和用戶緩存區(qū),以解決抓包時的丟包漏包;調用回調函數不斷地捕獲數據包,并在回調函數中不斷將數據包存入阻塞隊列1中。
線程2 取出視頻IP 數據包。首先根據IP 數據包類型初始化。初始化后,線程2 按存入順序不斷地從阻塞隊列1中取出以太網數據包,進行結構體賦值。
線程3進行數據處理,提取數據包中的視頻信息,拼接出視頻幀的像素信息。首先根據視頻內容設置視頻的幀率、寬高、色度采樣等參數,新建一幀圖像緩存區(qū)(例如采樣格式為4:2:2 的高清緩存區(qū)大小為1920*1080*2)。然后根據ST 2110-20 協議讀取數據包SRD 字段中的F、SRD Row Number、C、Offset 的值[9],讀取方式為數組偏移,偏移量由字段所在的字節(jié)位置距數據包包頭的距離決定。數據包從外到內的封裝依次為以太網/IP/UDP/RTP/ST 2110-20 有效載荷頭/視頻像素數據。若數據包的首字節(jié)用pkt[0]表示,第一個SRD F位于ST 2110-20有效載荷頭的第5個字節(jié)中的第一位,即數據包的第58 個字節(jié)(58=14+20+8+12+4),即pkt[58]中的第一位。當以上SRD 字段全為0時,為圖像起始行;若不是,繼續(xù)讀取數據包,直至全為0。當圖像起始行的數據包確定后,根據序列號依次讀取同一幀圖像的所有數據包中的像素信息,直到數據包標志位M 為1,通過相鄰字節(jié)拼接恢復出相應比特(例10bit)的原始取樣像素值元組,再結合SDL 顯示圖像的特性對像素值數據進行處理,以方便圖像顯示。最后根據采樣結構將上述得到的圖像對應像素信息Y、Cb、Cr 按照SRD 頭部樣本行中的Row Number、Offset、Length 位置信息進行相應賦值,直到一幀圖像緩存區(qū)完全被填滿,即得到一幀完整圖像,并將一幀完整圖像數據存入阻塞隊列2中。重復這個過程,不斷將圖像緩存區(qū)的新圖像存入阻塞隊列2。
線程4 播放視頻SDL(Simple DirectMedia Layer),SDL 是一套開放源代碼的跨平臺多媒體開發(fā)庫,它提供了豐富的控制圖像、聲音、輸入輸出的函數[10]。SDL 顯示視頻的流程主要可以分成兩大部分:初始化和循環(huán)顯示畫面。首先按照順序創(chuàng)建SDL 窗口、渲染器、紋理進行初始化,之后重復從阻塞隊列2中獲取一幀圖像數據來紋理更新、渲染器渲染、視頻顯示。
線程5為輸出監(jiān)測信息,含阻塞隊列實時長度、隊列輸入輸出包間隔、丟包數、總包數、幀頻、幀解析、播放及總間隔。
實驗過程中的物理拓撲如圖2 所示,視頻源由小米盒子和格式轉換器BlackMagic 組成,SDI-IP 網關為ROSS Raptor、通過華三交換機和光纖實現數據包網絡上的轉發(fā)。小米盒子傳輸出含時間碼內容的視頻作為視頻源,通過HDMI 線纜發(fā)送到BlackMagic。BlackMagic 可輸出1920*1080 50p,4:2:2,10bit 的高清視頻及3840*2160 50p, 4:2:2,10bit的4K 超高清視頻。視頻數據經SDI 同軸線纜傳輸到ROSS Raptor 網關,網關根據ST 2110-20 標準封裝成在IP 網絡中傳輸的數據包,數據包大小均為1262 字節(jié),一幀高清4320 個數據包。數據包繼而經由光纖和交換機在網絡中靈活傳播。高性能PC捕獲數據包進行解析監(jiān)測。
圖2 實驗物理拓撲
在超高清視頻系統(tǒng)建設過程中,最開始主流方案是將一幀4K 完整圖像分割成4 個子圖像通過4 路3G-SDI 信號來傳輸,主要有2SI(2 Sample Interleave)和SQD(Square Division)兩種傳輸模式[4],現電視臺多用1路4K。為便于理解和減少實驗復雜度,本文僅選取超高清4路中的1路無壓縮高清視頻IP流來進行實驗。不同清晰度視頻IP 化實現的原理同本實驗相同,但當需要4路高清視頻合成時,必須按照傳輸方式將4路3G-SDI鏈路的信號綁定在一起,且嚴格區(qū)分兩端序號對應關系。
數據包包間隔指兩個連續(xù)數據包進入或離開阻塞隊列的間隔。網絡傳輸中,因為網絡鏈路、擁塞情況、抖動、系統(tǒng)處理方式等因素,數據包到達和離開隊列的間隔不一。圖3展示了系統(tǒng)穩(wěn)定運行后100萬個數據包隊列輸入和輸出的包間隔變化,可以看出隊列的輸入輸出均有抖動,輸入的抖動明顯大于輸出的抖動,說明數據流從網絡到達系統(tǒng)阻塞隊列的緩存后,抖動可以明顯下降,證明了阻塞隊列的必要性,通過阻塞隊列的緩存可以使系統(tǒng)平穩(wěn)地解析播放視頻。隊列輸入和輸出的包間隔平均值分別為4620ns和4611ns,與數據包生產時間間隔相當(4629ns),說明系統(tǒng)采集和處理數據包的性能足夠。
圖3 阻塞隊列輸入輸出包間隔抖動
實驗中采用的視頻源和網關平均20ms發(fā)送一幀視頻信號,一定程度代表了輸入速率。為簡單測試本系統(tǒng)性能,實驗時先緩存50幀視頻內容,然后再進行視頻解析播放,經測試系統(tǒng)可以平均14.5ms解析一幀視頻,相對應代表輸出速率,遠小于20ms,說明系統(tǒng)性能足夠好。但輸入速率是前提,即使系統(tǒng)性能再高,輸出速率也會受到輸入速率的限制,由此得出本系統(tǒng)的輸出速率大于等于輸入速率。因此,阻塞隊列長度采用公式2。
阻塞隊列實時長度指在系統(tǒng)運行時阻塞隊列1中的數據包個數。圖4展示了在阻塞隊列無限長的情況下,系統(tǒng)開始運行20s內,阻塞隊列實時長度的變化。系統(tǒng)運行初始不穩(wěn)定,隊列長度大,最大值小于10000,平均值為1164.13。8s后,系統(tǒng)已經穩(wěn)定運行,圖5描述了8s-20s內系統(tǒng)平穩(wěn)運行時的阻塞隊列長度頻數,圖5中可以看出隊列長度最大值小于2000,頻數主要集中在0~800,800~2000時逐漸下降。因此,結合圖4和圖5,我們選擇了1100、1500、2000、10000、無限長5個隊列長度,來分別測試系統(tǒng)性能指標,選出合適的隊列長度,并證明2.2節(jié)中阻塞隊列長度算法的準確性。
圖4 阻塞隊列實時長度變化
圖5 阻塞隊列長度頻數圖
為更全面地衡量超高清IP化視頻采集解析及監(jiān)測的性能,從系統(tǒng)效率、數據完整性、傳輸穩(wěn)定性、實時性幾個方面提出了以下5個指標:丟包率、幀頻分布、幀間隔分布、首包處理時延、端到端時延。通過5種阻塞隊列長度的5個指標分析對比,確定當輸出速率大于等于輸入速率時阻塞隊列長度的大小。
(1)丟包率
從系統(tǒng)開始運行后,由于網卡抓包或系統(tǒng)解析錯誤導致丟失的數據包數,與數據包總數的百分比值,稱為丟包率。
圖6描述了系統(tǒng)運行1分鐘時,5種隊列長度的丟包率。當隊列長度大于等于2000時,丟包率為0。2000為系統(tǒng)穩(wěn)定運行時隊列長度的最大值,該值為1分鐘內系統(tǒng)不丟包的5種隊列長度的最小值。經測試發(fā)現,當系統(tǒng)運行時間更長時,隊列長度2000、10000、無限長也會發(fā)生丟包,零丟包率持續(xù)時間隨著隊列長度增長而增加,但均在丟包較少時不影響觀看效果。
圖6 丟包率對比
當隊列輸入的抖動過大,數據不斷堆積,當隊列被堆積數據填滿時,數據寫入線程休眠,線程休眠期間不再接收新數據。當阻塞隊列中的數據被消耗一些后,寫入線程重新工作,此時接收的數據與先前填入的數據便有了斷層,休眠期間本應接收的數據丟失了,因而產生了丟包。當阻塞隊列長度越長時,阻塞隊列可容納的數據包越多,允許的突發(fā)抖動也更大,從而丟包率小。
(2)幀頻分布
在系統(tǒng)開始運行后,每秒視頻播放幀數的分布情況稱為幀頻分布。
圖7中描述了系統(tǒng)開始運行后20s內幀頻的變化。除隊列長度1100和1500外,各阻塞隊列長度在視頻開始第1s,系統(tǒng)不穩(wěn)定,幀頻均不等于50,第2s及之后幀頻穩(wěn)定在50,系統(tǒng)達到穩(wěn)定。隊列長度1100和1500幀頻均一直未達到穩(wěn)定,在49上下變化,產生此的原因與系統(tǒng)丟包導致的丟幀密切相關。
圖7 幀頻對比
(3)幀間隔分布
在系統(tǒng)平穩(wěn)運行狀態(tài)下,即幀頻穩(wěn)定在50時,當前幀解析完畢與上一幀解析完畢之間的時間間隔為幀解析間隔。
當前幀播放完畢與上一幀播放完畢之間的時間間隔為幀播放間隔。
當前幀解析播放完畢和上一幀解析播放完畢間的時間間隔為幀全間隔分布。
幀全間隔分布和隊列長度關系較小,只與數據解析播放線程本身的效率有關。因此,在研究幀的解析、播放和全時間間隔之間的關系時,僅采取了隊列長度10000時的幀間隔數據。
圖8描述了系統(tǒng)穩(wěn)定運行后60幀的幀全間隔、解析間隔、播放間隔的數值變化,平均值依次為19.48ms、19.4ms、4ms。其中需要注意的是,在3.2中指出系統(tǒng)平均14.5ms解析一幀視頻,但是在本實驗中幀解析間隔平均19.4ms,這是因為視頻源本身為50p,每幀20ms生成的速率限制了更快的幀解析時間。全間隔包括解析和播放兩步,全間隔的平均值小于解析和播放間隔之和,這說明加入阻塞隊列2實現解析和播放線程分離,在不同的CPU上同時運行后,系統(tǒng)運行的時間只取決于運行時間長的線程,即解析線程,縮短了解析和播放順序運行的時間,提高了程序運行效率。在圖8中全間隔和解析間隔變化趨勢相同,全間隔比解析間隔變化慢1幀,兩者均值僅差0.08ms,從數據上也驗證了系統(tǒng)運行時間主要依賴于耗時最多解析線程的變化。
圖8 幀間隔對比
(4)首包處理時延
在系統(tǒng)網絡拓撲穩(wěn)定的前提下,系統(tǒng)開始運行后抓取到第一個數據包與第一個數據包所屬視頻幀解析完畢之間的時間間隔,首包處理時延可以在一定程度上反映系統(tǒng)初始化效率以及數據解析效率。
首包處理時延=首幀解析完畢時間-首包捕獲時間。
圖9表示5種隊列長度各20次實驗的首包處理平均時延,從圖9中可以看出首包處理時延整體趨勢隨著隊列增長而增大,從隊列長度2000開始,首包處理時延增加明顯。由圖4可知,在系統(tǒng)初始化時,隊列里的長度最長,系統(tǒng)初始化時隊列長度最大到10000。當阻塞隊列長度為2000時,系統(tǒng)初始化時隊列長度最大到1999。因此設置隊列長度越長,在系統(tǒng)初始化時阻塞隊列里的數據包就會越多,系統(tǒng)未及時處理,進而導致首包處理時延增大,而在系統(tǒng)穩(wěn)定后,各阻塞隊列長度中的實時隊列長度則一直在0到某個范圍穩(wěn)定變化。
圖9 首包處理時延變化
(5)端到端時延
在系統(tǒng)平穩(wěn)運行狀態(tài)下,端到端時延為視頻數據源端與視頻播放端二者之間的實時時間差,通過該指標的分布情況可以看出整個系統(tǒng)層面的整體運行效率。
端到端時延=發(fā)送時延+傳輸時延+處理時延。
圖10為各隊列長度在系統(tǒng)開始運行1分鐘內20次的端到端時延對比,平均值依次為0.72s、0.61s、0.13s、0.15s、0.14s。隊列長度1100和1500的平均端到端時延過大的原因和丟包率大密切相關。隊列長度大于等于2000時,端到端時延相差不大。在系統(tǒng)穩(wěn)定后,實時隊列長度(最大值2000)小于設置的阻塞隊列長度時,系統(tǒng)的處理性能足夠,可以實時處理完阻塞隊列中的數據包,故而端到端時延相差不大。
圖10 端到端時延對比
(6)綜合指標分析
通過以上分析,各阻塞隊列長度可得出表1 的信息,其中數字1-5 代表該指標在幾個隊列長度中的系統(tǒng)性能分數,數字越大,系統(tǒng)性能越好。
表1 各隊列長度指標性能比較
在5 種隊列長度中,1100 和1500 因為產生丟包,除首包處理時延外,其他指標均表現較差,可首先排除這兩個長度。剩余的三個隊列長度在幀頻分布上性能一樣;在丟包率上,1分鐘內,三者一樣好,但持續(xù)時間更長的情況下,無限長最好;在首包處理時延和端到端時延上,2000表現最好,且綜合得分最高。
因此,在考慮系統(tǒng)初始化快并且實時性高時,阻塞隊列長度最佳為2000,即jitter為2000。僅考慮系統(tǒng)在長時間內(大于1 分鐘時)的丟包率性能,阻塞隊列長度最佳為無限長。而從實際出發(fā),隊列無限長即為電腦內存,存在著不定性,阻塞隊列長度越大,占用的內存資源也越大,且如果阻塞隊列消耗速率在一段時間內持續(xù)小于放入速率,端到端時延將越來越大。因此,在本實驗環(huán)境下,阻塞隊列的輸入小于等于輸出速率時的阻塞隊列長度確定為2000 最好,即L=2000。
(7)視頻解析監(jiān)測結果
在阻塞隊列長度為L=2000 的情況下,實驗結果視頻播放畫面截圖如圖11 所示,畫面顯示完整,播放流暢無卡頓、畫面與視頻源相比得到良好的還原。
圖11 實驗播放效果圖
制播全IP化符合廣電和媒體行業(yè)未來發(fā)展方向。本文在通用計算機環(huán)境下設計和實現了ST 2110-20標準IP視頻信號的采集、解析、播放和監(jiān)測分析,大幅度提高了系統(tǒng)的工作效率。實現中共采用5 個線程:Winpcap 采集視頻流數據包,并存儲在阻塞隊列1;從阻塞隊列1 獲取數據包;解析數據包獲取完整圖像像素信息,存儲在阻塞隊列2中;從阻塞隊列2獲取整幀圖像像素信息,利用SDL 實現視頻播放;輸出監(jiān)測信息。
本文設計了多線程并發(fā)和阻塞隊列長度緩存算法,根據阻塞隊列長度算法獲得阻塞隊列長度可以為整個IP系統(tǒng)得到低丟包率、低延時。在阻塞隊列的輸入速率小于等于輸出速率時,通過5 種隊列長度在丟包率、幀頻分布、幀間隔分布、首包處理時延、端到端時延5 個監(jiān)測技術指標下的性能對比,確定了本實驗的阻塞隊列長度為2000,該隊列長度在5 個監(jiān)測技術指標中整體性能良好。由此我們也可得出在無限長阻塞隊列前提下,系統(tǒng)穩(wěn)定運行后的最大抖動隊列長度即為可設置的最佳隊列長度,2.2 節(jié)的阻塞隊列長度算法得證。