目前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号稱是全平台,全裝置支援的,但是目前官網上沒有找到手持裝置的相關文檔