文档章节

【原创】P2P-NEXT测试结论和遗留问题

摩云飞
 摩云飞
发布于 2012/11/01 11:22
字数 1581
阅读 683
收藏 2
点赞 0
评论 4

目前P2P-NEXT的测试环境已经搭建好,并进行了测试。

已经测试过的点:
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号称是全平台,全设备支持的,但是目前官网上没有找到手持设备的相关文档


© 著作权归作者所有

共有 人打赏支持
摩云飞
粉丝 367
博文 534
码字总数 952690
作品 0
徐汇
程序员
加载中

评论(4)

chenzhengxian
chenzhengxian
请问这个问题(Error decoding AAC frame header.)是怎么解决的,是编码的时候有问题吗,谢谢...
小洋哥
小洋哥

引用来自“chenfengfanhua”的评论

引用来自“摩云飞”的评论

看来目前研究P2P流媒体并非主流,该测试结果的价值可能要过1、2年后才能体现了~~

何止P2P流媒体,感觉整个P2P的研究都不温不火的……
P2P架构是未来之趋势
c
chenfengfanhua

引用来自“摩云飞”的评论

看来目前研究P2P流媒体并非主流,该测试结果的价值可能要过1、2年后才能体现了~~

何止P2P流媒体,感觉整个P2P的研究都不温不火的……
摩云飞
摩云飞
看来目前研究P2P流媒体并非主流,该测试结果的价值可能要过1、2年后才能体现了~~
使用Iptables的功能扩展全面封杀P2P流量

一、测试工作环境: RedHat Linux 9.0内核版本:2.4.20-8 二、需要的软件包: 1.Netfilter的IPTABLES 1.2.9下载位置: http://www.netfilter.org/project ... ables-1.2.9.tar.bz2得到软件包为:...

红薯
2009/05/07
1K
0
软件测试报告中常见的疏漏

今天分享一下以前在带领团队过程中,测试人员编写软件测试报告常见的疏漏,以便大家避免,更好让测试成果呈现给客户(可能是自己的领导,也可能是用户,后文统称为客户)。 文档模板的使用 ...

白一客
2017/05/04
113
0
测试报告模板范例

1. 简介 1.1 编写目的 本文档用于记录测试过程,总结各轮次的测试情况,分析测试数据,归纳测试工作进行过程中暴露的问题与遗留的风险,给出相应的测试建议以供后续项目参考。 1.2 项目背景 ...

xqtesting
01/04
0
0
【原创】P2P-NEXT中各个WP负责哪些工作

由于工作需要,需要对P2P-NEXT进行深入研究,然而简单浏览过后发现,其内容涉及到方方面面,如果不从整体上进行把握,很容易搞不清楚状况,这里将P2P-NEXT中涉及到的WP进行摘录和简单解释,便...

摩云飞
2012/10/25
0
6
跟遗留代码打交道:干掉顽固漏洞的简单方式

事实证明,跟遗留代码打交道未必需要花费数天时间去研究晦涩难懂的注释。要想找到并修复漏洞,开发者可采用简单的测试工具来对问题抽丝剥茧。 跟遗留代码打交道会是比较困难的,尤其是如果代...

小猪猪的风
2014/09/17
0
0
C# WinForm开发系列 - Socket/WCF/Rometing/Web Services

当今社会是一个信息化社会, 网络越来越多地影响人民的生活, 带来巨大的便利性; 而网络通信在软件开发中占据相当大的比重. Socket/WCF/Rometing/Web Services 各种技术纷至踏来, 应用广泛; 而...

长征2号
2017/08/11
0
0
【原创】JSR303与ApacheValidate性能测试

软件开发中涉及到这样一个问题,那就是关于后台系统的数据验证,任何系统的绕不过去的。 下面针对于各种方式的数据验证进行一个测试。 if else 结论:这种效率是无疑是最高效的验证代码,优势...

linapex
2016/08/15
1K
4
2018年上半年P2P发展监测报告:新增36家,消亡721家

雷锋网AI金融评论消息,7月6日,国家互联网金融安全技术专家委员会发布《2018年上半年P2P发展监测报告》(下称《报告》)。《报告》从P2P整体发展态势、P2P平台运营情况、违规情况监测三个维...

XF
07/06
0
0
PayPal从Java切换到JavaScript

已经决定使用JavaScript开发Web应用程序,从浏览器一直到后端服务器,并放弃了使用JSP/Java编写的遗留代码。 PayPal技术总监Jeff Harrell在两篇博文中(解放我的UI第一部分:Dust JavaScript...

greki
2014/05/04
0
0
Linux3.5内核以后的路由下一跳缓存

在Linux3.5版本(包括)之前,存在一个路由cache,这个路由cache的初衷是美好的,但是现实往往是令人遗憾的。以下是陈列得出的两个问题: 1.面临针对hash算法的ddos问题(描述该问题的文章已经汗...

dog250
2016/03/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

spring-@RequestBody

@RequestMapping("/login")    public void login(@RequestBody String userName,@RequestBody String pwd){      System.out.println(userName+" :"+pwd);    }    ......

说回答
6分钟前
0
0
Redis安装

大家可以通过该链接获取安装详情(这是一个Word文档,支持下载): http://note.youdao.com/noteshare?id=7a327ed6c58fb2037ba537e58ecf7510&sub=480DB8EF349747C3983B73AE94D45BB1 其他参考...

一梦心草
6分钟前
0
0
MySQL按天,按周,按月,按时间段统计【转载】

https://blog.csdn.net/qq_28056641/article/details/78306870 select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days; select DATE_FORMAT(creat......

李道福
8分钟前
0
0
浅谈parallelStream

parallelStream是什么,它是一个集合的并发处理流.其作用是把一个集合中的数据分片,进行一个多线程的处理,增快运行速度. 比如说这样一段代码 private Set<SysRole> sysRoles;private Set<St...

算法之名
10分钟前
3
0
器者,道之所载

形而上者谓之道,形而下者谓之器,化而裁之谓之变;推而行之谓之通,举而措之天下之民,谓之事业。—— 《道德经》

了凡川
11分钟前
0
0
C#命名规范中文版/C#编码规范中文版

最新文档地址https://github.com/hiramtan/CSharpNamingGuidelines_Chinese C#命名规范中文版/C#编码规范中文版 示例 /*****************************************************************......

海贝Hibey
12分钟前
0
0
刚从eclipse转到Intellij IDEA,分享一些配置经验

刚从eclipse转到Intellij IDEA,分享一些配置经验,IntelliJ IDEA作为最好的Java开发工具,在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等...

舒文joven
14分钟前
1
0
lombok 引入后,测试类始终找不到get,set方法。

开发环境为idea,jdk1.7,maven3.5. 网上直接搜出来的方法有: 1、在setting里安装lombok的plugins; 2、如下图,勾选enable annocation processing选项 3、升级maven plugins插件 我尝试了以...

Kidult
20分钟前
0
0
Duang,HUAWEI DevEco IDE全面升级啦

想感受全新UI带来的视觉及交互体验、 HiKey970开发板调测、 HiAI API推荐和收藏、 深度AI模型分析等新功能, 体验高清晰度和流畅度的远程AI真机调测吗? 全新的UI设计 采用最优秀的视觉及交互...

华为终端开放实验室
28分钟前
1
0
阻止事件冒泡,阻止默认事件

1.event.stopPropagation()方法 这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开, 2.event....

闫亚亚
30分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部