目前P2P-NEXT的測試環境已經搭建好,並進行了測試。
linux
已經測試過的點:
1.經過VLC模擬的直播源發送直播流到一個直播流轉換工具(轉成BT支持的格式)進行相應轉換,產生用於直播的文件(其中包括加入該直播流的.tstream種子文件)
2.多臺機器均運行P2P-MEXT的PC客戶端,讀取種子文件便可加入該直播流
3.同時能夠在WEB服務器上編譯HTML5代碼,實現經過P2P方式傳輸直播流
【測試結果】( --> 表明格式轉換 )
1.ogg --> mp4(H.264+MP3)
沒法正常播放
[mp3 @ 09028240] Header missing
[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: 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
videoplay: gui_vod_event: pause
videoplay: gui_vod_event: resume
videoplay: gui_vod_event: pause
videoplay: gui_vod_event: resume
videoplay: gui_vod_event: pause
9.ogg --> ASF(DIV3+mp3)
沒法播放
[mp3 @ 09028240] Header missing
[mp3 @ 09028240] Header missing
[mp3 @ 09028240] Header missing
authstream: seek: Ignoring seek 0 in live
videoplay: gui_vod_event: pause
videoplay: gui_vod_event: resume
=================================================================
=================================================================
10.mp4 --> mp4(H.264+MP3)
沒法正常播放
[mp3 @ 0900bce0] Header missing
[mp3 @ 0900bce0] Header missing
[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)
沒法正常播放
videoplay: gui_vod_event: pause
videoplay: gui_vod_event: resume
videoplay: gui_vod_event: pause
videoplay: gui_vod_event: resume
videoplay: gui_vod_event: pause
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
[09021788] theora decoder error: this bitstream does not contain Theora video data
[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
[mpeg2video @ 09054260] qscale == 0
[mpeg2video @ 09054260] concealing 1200 DC, 1200 AC, 1200 MV errors
[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] 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號稱是全平臺,全設備支持的,可是目前官網上沒有找到手持設備的相關文檔