天天看點

【原創】P2P-NEXT測試結論和遺留問題

目前p2p-next的測試環境已經搭建好,并進行了測試。

已經測試過的點: 

1.通過vlc模拟的直播源發送直播流到一個直播流轉換工具(轉成bt支援的格式)進行相應轉換,産生用于直播的檔案(其中包括加入該直播流的.tstream種子檔案) 

2.多台機器均運作p2p-mext的pc用戶端,讀取種子檔案即可加入該直播流 

3.同時可以在web伺服器上編譯html5代碼,實作通過p2p方式傳輸直播流 

【測試結果】( --> 代表格式轉換 ) 

1.ogg --> mp4(h.264+mp3) 

無法正常播放 

[mp3 @ 09028240] header missing 

ogg.mp4 dlstatus_downloading  1.40% none up     0.00kb/s down    52.68kb/s 

videoplay: gui_vod_event: resume 

videoplay: gui_vod_event: pause 

2.ogg --> webm(vp80+vorbis) 

[aac @ 090bcde0] more than one aac rdb per adts frame is not implemented. update your libav version to the newest one from 

 the problem still occurs, it means that your file has a feature which has not been implemented. 

[aac @ 090bcde0] error decoding aac frame header. 

3.ogg --> ts(h.264+mp3) 

能非常流暢且清晰的播放(平均下載下傳速度達到100k/s以上,轉碼機器cpu負載vlc占用10%-30%左右) 

4.ogg --> ts(dirac+mp3) 

能播放,但是圖像不清晰,卡頓現象較嚴重(平均下載下傳速度30k/s--60k/s,轉碼機器cpu負載vlc占用20%-30%左右) 

5.ogg --> ogg(theora+vorbis) 

能比較流暢且比較清晰的播放,偶爾卡頓(平均下載下傳速度達到70k/s-100k/s以上,轉碼機器cpu負載vlc占用10%-30%左右) 

6.ogg --> ogg(theora+flac) 

無法正常播發 

[09021788] theora decoder error: this bitstream does not contain theora video data 

7.ogg --> ts(mpeg-2+mpga) 

能非常流暢且比較清晰的播放,(平均下載下傳速度達到100k/s以上,轉碼機器cpu負載vlc占用10%-20%左右) 

8.ogg --> asf(wmv+wma) 

無法播放 

authstream: seek: ignoring seek 0 in live 

9.ogg --> asf(div3+mp3) 

=================================================================  

10.mp4 --> mp4(h.264+mp3) 

[mp3 @ 0900bce0] header missing 

[mp3 @ 0900e300] max_analyze_duration reached 

[mp3 @ 0900e300] estimating duration from bitrate, this may be inaccurate 

11.mp4 --> webm(vp80+vorbis) 

12.mp4 --> ts(h.264+mp3) 

能非常流暢且清晰的播放(平均下載下傳速度達到100k/s以上,轉碼機器cpu負載vlc占用60%-70%) 

13.mp4 --> ts(dirac+mp3) 

能清晰播放,但是卡頓現象較嚴重(平均下載下傳速度40k/s--50k/s,轉碼機器cpu負載vlc占用30%左右) 

14.mp4 --> ogg(theora+vorbis) 

播放非常流暢但不是非常清晰(平均下載下傳速度達到100k/s以上,轉碼機器cpu負載vlc占用30%左右) 

15.mp4 --> ogg(theora+flac) 

[07a1cea8] main input error: es_out_reset_pcr called 

[090[0271a71848a]8 8theora decoder error: ]this bitstream does not contain theora video data 

ogg demux error: broken ogg stream (serialno) mismatch 

16.mp4 --> ts(mpeg-2+mpga) 

能非常流暢但不是非常清晰的播放(平均下載下傳速度達到100k/s以上,轉碼機器cpu負載vlc占用80%-90%左右) 

螢幕有如下類似錯誤的列印 

[mpeg2video @ 09054260] qscale == 0 

[mpeg2video @ 09054260] concealing 1200 dc, 1200 ac, 1200 mv errors 

17.mp4 --> asf(wmv+wma) 

[h263 @ 0900ab80] bad marker 

[h263 @ 0900ab80] header damaged 

[h263 @ 0900ab80] h263 sac not supported 

18.mp4 --> asf(div3+mp3) 

能播放,但花屏嚴重,卡頓嚴重(平均下載下傳速度達到50k/s-60k/s以上,轉碼機器cpu負載vlc占用30%左右) 

vlc直接轉碼出來的視訊就已經是花屏的,螢幕報如下錯誤列印 

[msmpeg4 @ 090049e0] error, slice code was d 

[msmpeg4 @ 090049e0] header damaged 

[msmpeg4 @ 090049e0] dc overflow- block: 1 qscale: 19// 

[msmpeg4 @ 090049e0] 

error while decoding block: 0 x 31 (1) 

[msmpeg4 @ 090049e0] error at mb: 2511 

[msmpeg4 @ 090049e0] concealing 1199 dc, 1199 ac, 1199 mv errors 

【測試要點和結論分析】 

1.測試均在win32平台 

2.測試中用于轉碼的vlc版本為vlc v2.0.2 

3.測試目的為檢驗p2p-next提供的p2p流媒體套件對常用(我們可能用到的)格式播放支援 

4.測試中僅在一個用戶端參與直播的情況下進行相關資訊的收集,不排除多用戶端的情況會有不同(測試環節比較繁瑣,目前沒有進行多用戶端的測試) 

4.測試中所用到的p2p相關參數 設定 (如滑動視窗的長度,視訊分片大小等)均采用預設值,不排除優化參數後會有更好效果的可能 

5.測試中每一個采樣的停止均是以傳輸速度穩定為标準,不排除在長時間測試中由于網絡原因導緻卡頓後,直播用戶端和源之間延遲會逐漸變大。 

6.測試中觀察,區域網路環境的情況下,首次加入直播流的用戶端與直播源之間的延遲一般在2s-8s之間。 

【遺留工作和問題】 

1.以上測試未記錄建立直播流的python子產品在工作時占用的cpu,而實際伺服器架構中,視訊轉碼和建立直播流的子產品可能會工作在同一台伺服器。 

2.未進行linux上測試 

3.上述采樣測試中未進行多台pc同時直播的測試(但我自己進行過3台測試,效果還不錯) 

4.p2p直播在html5上的效果不是很理想,在html5上的測試我是安裝的p2p-next官方提供的插件,在win32平台firefox上進行的測試(目前插件僅支援ie和ff),測試過程中發現,其p2p子產品的下載下傳速度還是不錯的(能達到100k/s),但是播放似乎沒有在緩沖好後立即播放,且卡頓頻繁,懷疑和編碼參數設定以及html5本身有關,目前無結論。 

5.p2p-next号稱是全平台,全裝置支援的,但是目前官網上沒有找到手持裝置的相關文檔 

繼續閱讀