原文地址: http://www.cnblogs.com/hsq0421/p/4092262.html
在通過網絡進行音視頻即使通訊的時候,選擇合適的視頻質量參數就需要根據實際的系統運行環境綜合來決定,下面我們針對常見的網絡環境給出一些建議供參考。
目前常見的網絡主要有四種類型:ADSL撥號接入方式、光纖接入方式、3G撥號接入方式、局域網。
ADSL撥號接入方式是一種非對稱的網絡接入,下行流量通常有2Mbps、4Mbps、6Mbps等,而上行流量通常都是512kbps,即上行速率和下行速率是不對稱的。此時如果需要使用AnyChat進行音視頻的交互,則上傳流量只能用512kbps作爲參考值,適合的分辨率有:QVGA(320x240)、CIF(352x288)、VGA(640x480)。
纖接入方式是一種對稱的網絡接入,通常上行速率和下行速率相同。光纖接入的網絡通常非常穩定,適合傳輸較高質量的視頻,當網絡帶寬允許的情況下,適合的分辯率有:QVGA(320x240)、CIF(352x288)、VGA(640x480)、SVGA(800x600)、720P(1280x720)。
3G撥號接入方式也是一種非對稱的網絡接入,不同的網絡運營商所提供的網絡帶寬各不相同,而且和ADSL一樣上行網絡帶寬遠遠低於下行網絡帶寬,如聯通的3G宣傳的7.2Mbps網絡帶寬便是指下行帶寬,而且3G的網絡帶寬質量與位置相關,如離信號基站越近,質量就越好,同一個基站下使用3G的用戶越少,質量也就越好。在這種接入方式下,適合上傳的分辨率有:QVGA(320x240)、CIF(352x288)。
局域網,或是專網網絡帶寬都非常充裕,選擇多大的分辨率主要根據PC的性能來決定,通常局域網可以選擇CIF(352x288)、VGA(640x480)、SVGA(800x600)、720P(1280x720)等分辨率。
現在就AnyChat音視頻開發包爲例,進行設置視頻的幀率、分辨率、碼率來調節音視頻即時通訊的質量。
AnyChat質量模式分辨率、碼率對應表(單位:kbps)
|
320x240 |
352x288 |
640x480 |
800x600 |
1280x720 |
|||||
12fps |
25fps |
12fps |
25fps |
12fps |
25fps |
12fps |
25fps |
12fps |
25fps |
|
static |
20 |
40 |
60 |
70 |
100 |
130 |
160 |
180 |
350 |
380 |
motion |
150 |
200 |
210 |
250 |
400 |
450 |
550 |
650 |
850 |
900 |
avg |
80 |
120 |
150 |
180 |
200 |
230 |
300 |
350 |
450 |
550 |
Static—靜態畫面, motion—運動圖像峯值, agv—平均碼率
AnyChat的視頻質量分爲“碼率控制模式”和“質量控制模式”,在“碼率控制模式”下,視頻流的目標碼率會在設定碼率的上下浮動,而在“質量控制模式”下,目標碼率會根據視頻圖像的運動場景自動進行調節,靜態畫面時輸出較低的碼率,而運動畫面時,會輸出較高的碼率,以保障視頻的細節得到展現。通常來說,光纖接入方式、局域網等網絡帶寬比較充裕的場合可使用“質量控制模式”,而ADSL撥號接入和3G撥號接入則採用“碼率控制模式”比較合適。
關於視頻的幀率,幀率越高,視頻越流暢,同時給網絡的壓力也會增大,輸出的碼率也會增加,通常來說,光纖接入方式、局域網等網絡帶寬比較充裕的場合可使用高幀率,如20fps、25fps,而ADSL撥號接入和3G撥號接入則採用低幀率比較合適,如8fps、12fps等。