網絡視頻服務器低帶寬解決方案

來源:上海卓揚科技有限公司    點擊數: <script language=Javascript src="http://www.cps.com.cn/news/Article/GetArticleHits.asp?ArticleID=200822894012891"></script> 560   發佈時間:2008年02月28日   

   一、 概述

    隨着網絡視頻服務器的越來越普及,隨着全球眼,平安城市等項目的全面開展,在視頻監控行業中,通過網絡來傳輸視頻已經成爲發展趨勢。通過網絡來傳輸視頻,不僅可以利用網絡的資源將視頻圖像傳輸的更遠,從而不受距離限制;同時,網絡的應用給視頻監控帶來了更多新穎的功能,完全可以達到各種用戶專業化監控的要求。可以預見,未來的視頻監控一定是網絡化的視頻監控,這應該是不可逆轉的潮流。

    在當前的網絡條件下,很多用戶發現網絡視頻服務器在通過網絡傳輸視頻信息時經常遇到帶寬過低或者帶寬不穩的問題,導致視頻在這樣的帶寬條件下無法正常的傳輸連續的視頻圖像,用戶在瀏覽視頻圖像時感覺畫面停頓感、滯後感非常強烈,無法達到其監控要求。

    也許你也遇到過這樣的問題,當你把網絡視頻服務器放在Internet網上時,圖像畫面非常卡,非常不流暢,可能幾秒畫面才動一下,或者畫面乾脆很長時間不動了。在這樣的環境下你使用網絡視頻服務器根本無法達到你的監控要求。

    也許你還會遇到這樣的困惑,你已經搭建了2M帶寬的網絡,一開始時你可能只是想搭建一個企業內部網,開展一些網頁瀏覽的業務,之後你可能增加了內部下載等業務,再之後你可能在你的企業網裏增加了流媒體點播的業務,同時還增加了網絡視頻會議等業務,最後,你決定增加網絡視頻監控的業務。這所有的業務同時運行在你2M帶寬的網絡上,有時你發現視頻很流暢,有時你又發現視頻非常卡無法正常瀏覽。這時,即使你人爲的降低視頻服務器的比特率,仍然無法得到流暢的圖片。這是因爲如果在2M帶寬下只運行一個業務帶寬是充裕的,但是當某一時刻所有業務一起運行起來,所有業務對帶寬需求的總和一定超過2M帶寬,從而每個業務在實際使用中分得的帶寬就不夠了。這時你就會發現有些時段視頻圖像非常流暢,有些時段視頻圖像就非常的卡了。

    也許你早期使用過MJPEG編碼方式的視頻服務器,你現在已經升級到MPEG4或者H.264編碼方式的視頻服務器了,如果你的網絡狀況並不充裕,就像上面描述的情況一樣。那麼,你會發現,H.264或者MPEG4編碼方式的視頻服務器的視頻流暢性反而不如MJPEG編碼方式的視頻服務器的流暢性。儘管所有的廠商都告訴你H.264或者MPEG4佔用更低的帶寬,擁有更好的圖像質量,但是在你的網絡狀況中的表現卻不是這樣。

    二.問題分析

    以上所有的問題都來自於網絡,網絡帶寬過低或者網絡帶寬不明確且不穩定影響了視頻瀏覽,我們將以上的現象歸爲如下兩大類問題:

    一、網絡帶寬過低導致網絡視頻服務器不流暢

    該情況多發生在使用ADSL等設備通過Internet網傳輸視頻監控業務。大多數用戶ADSL的上行帶寬可能只有512K或者更小,在Internet實際傳輸帶寬往往大大小於512K,在使用網絡視頻服務器進行網絡視頻監控業務時視頻圖像非常不流暢,用戶不得不不斷的降低視頻服務器bitrate值,以滿足傳輸實際帶寬的要求,同時又要保證有比較好的圖像質量,往往這些調節工作對客戶來說操作起來很麻煩。

    二、 網絡帶寬不明確且不穩定導致視頻服務器不流暢

    正如上面舉例的第二種情況,表面上看有2M足夠的帶寬,但是實際使用中由於業務太多超出帶寬容量,導致視頻帶寬不夠。這種情況是帶寬不明且不穩定的情況,適合於一些較早建設的網絡。早期很多網絡是按照2M的光纖進行建設的,在2M光纖上進行多種業務的操作,比如公司內部網頁訪問、內部下載、內部郵件、內部視頻點播等業務都在這2M光纖業務上。在增加了網絡視頻監控業務後,仍然在原有的2M光纖上所有業務,這時就會發現視頻圖像瀏覽非常不了流暢,幾秒甚至十幾秒才能動一下,無法滿足正常監控業務的要求。這時用戶開始嘗試把視頻服務器的比特率不斷調低,最終發現無法找到一個合適的值來使圖像達到流暢。因爲由於業務太多且雜,沒有人能夠實時的知道當前帶寬到底是多少?視頻服務器的比特率到底設置在多少合適?該現象尤其在Internet網上進行視頻監控業務時也非常突出。

    大家不禁要問,明明H.264或者MPEG4的壓縮算法先進了很多,更大的降低了碼流;但是,爲何在低帶寬下的表現反而不如人意呢?

    這要從MPEG系列壓縮算法的核心分析了。MPEG系列壓縮算法從早期的MPEG-1,MPEG-2發展到現在的MPEG-4以及最新的H.264,其核心壓縮原理沒有變化。MPEG系列壓縮算法都在時域上對視頻流進行壓縮。與MJPEG壓縮每一幀都是單獨JPEG圖的方式不同,MPEG系列壓縮算法採用了I幀,P幀和B幀的模式,當前大部分壓縮芯片或者壓縮算法並沒有實現B幀。大家不必過分關心I幀,P幀的細節,只需要知道在這三種幀模型裏,I幀是關鍵幀,P幀是前向預測幀,B幀是後向預測幀。當解碼器收到一個I幀的時候,可以立刻進行解碼,而不需要其它條件;但是,當解碼器收到P幀或者B幀的時候,就不能夠立刻進行解碼,比如,P幀的解碼需要解碼器先解碼該幀前面的P幀或者I幀。如果前面的P幀或者I幀在網絡中丟掉,即使後面連續收到很多P幀,也無法正常解碼。舉個例子,在帶寬不夠的情況下網絡丟掉一個I幀,即使隨後的P幀都收到,仍然無法正確解碼出圖像。這就是爲什麼低帶寬下MPEG4或者H.264壓縮算法表現還不如MJEPG的原因。MJPEG每一幀都是獨立的幀,只要網絡傳送一幀,就可以解碼出一副圖片。在帶寬不夠的情況下,MJPEG每秒可能只能傳送3、4幀,但是,用戶已經可以在這1秒鐘內看到3、4副畫面了;對H.264來說,由於自身碼流本身比較低,可能在低帶寬下1秒能夠傳送15、16幀,但是,如果I幀在網絡上丟失了,即使連續收到15幀P幀也無法正常解碼出一副圖片,這時給用戶的直觀感覺畫面長時間停滯,低帶寬下H.264居然比不上MJPEG。

    三、解決方案

    出現上面的問題的原因並不是由於H.264壓縮算法不如MJPEG,而完全是由於我們沒有針對這樣的網絡環境中進行優化,任何一個好的算法,在實際應用中也是要根據應用場景進行相應的優化處理,這樣的優化大部分是針對網絡傳輸來進行的。我們可以從以下三個方面入手來解決問題。

    一、增加編碼過程中I幀出現的機率

    在MPEG系列編碼算法中,通常用GOP(GROUP OF PICTURE)這一值來設置I幀產生的間隔,比如當GOP設置爲30時,就表示每30幀產生一個I幀。I幀通常佔用數據量都很大,很多編碼器將GOP設置爲120或者更高,這樣可以較少I幀出現的概率,從而降低碼流;但是帶來的後果就是當網絡帶寬不夠,丟掉一個I幀,那幾秒內無法再正確解碼數據幀直到接收到下一個I幀,導致畫面長時間停滯。經過我們長期的測試,在低帶寬的情況下GOP的值調整爲5比較合適,這樣1秒鐘能夠產生5個I幀,即使偶爾丟掉了一個I幀,下一個I幀也能很快彌補上,圖像不至於長時間的停滯。

    二、實時檢測網絡帶寬

    視頻服務器要智能的對帶寬進行實時檢測和控制,我們可以通過應答機制等方法掌握當前實際的網絡帶寬是多少,這個是完全可以通過嵌入式軟件來實現的。只要能實時的掌握帶寬,就可以對編碼器的策略和發送策略進行實時調整。針對不同的帶寬採取不同的編碼策略和發送策略,從而最大利用帶寬進行視頻傳輸。

    三、優化發送策略,增加I幀發送機率

    當嵌入式軟件檢測到當前帶寬不夠的時候,傳輸模塊應智能的調整發送策略,增加I幀的發送機率。除了通過降低GOP的值增加I幀的產出機率,同時在網絡發送策略上確保I幀能夠發送成功,如可以採用帶有重發機制的協議確保I幀不會在網絡上丟失。這樣,可以增加有效幀對帶寬的佔用,減少無效幀對帶寬的耗費。

    上海卓揚科技有限公司在其H.264全系列產品中進行了發送策略的充分優化,經過詳盡的測試,在各種帶寬下進行對比測試,通過上面手段改進過的發送策略使H.264視頻服務器在低帶寬或者不明帶寬下不僅提升了圖像質量,同時瀏覽的流暢度大大提高,可以智能的根據帶寬自動調節以保持最佳流暢性,同時,低帶寬下實時性也大幅提高。

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