P2P直播、点播技术学习经验
自8月份以来一直埋头学习P2P在音/视频直播、点播上的学习,受到不少网友的帮助,在此也留下自己学到的一点点的经验。
第一个接触的开源项目是peercast,应该说上手非常快,这必须感谢王浩聪的注释版,稍做调整后便架起了自己的广播平台,运行起来效果也很理想。于是尝试发布视频流,在局域网内测试未发现问题,但是拿到广域网上问题马上出来了,播放要么中断、要么缓冲。
于是,仔细学习代码的相关流程,网上也查了一些资料,发现peercast的网络模型为树形,而视频所需要的上传流量一般都在30K以上,这样客户机很难满足下线所需的资源。所以才会出现问题。为了更深入的学习
为了更深入的学习P2P应用,第二个编译的是mysee公司开源的myseelite,这个项目共开放了三个版本:myseelite1、myseelite2.0、myseelite2.1,下面我将粗略的介绍下这三个版本:
myseelite1 这个版本的服务端必须运行在linux系统上,为了编译这个版本,我特地弄了一台linux机器,TP、CP、SP三个服务全部编译成功,运行MMSServer.exe连接成功,但服务端去没有看到生成的相关频道信息,在调试中找到了几位网友也在看这个项目,知道还有myseelite2。
myseelite2.1 先介绍2.1是因为我是先从2.1开始编译的,环境搭好以后,顺利编译出各个程序并配置、运行,Capture.exe点上传后崩溃。经网友指点得知2.1问题比较多,放弃~
myseelite2.0 既然2.1有问题那我们就用2.0学习也一样,环境之前搭好,编译也顺利,运行。。。playerd.exe崩溃。。。(我特想找个人抽两下),后经指点2.0播放器有问题要用2.1的来播放,好吧!换了播放器之后果然可以播放。然而经过更深入的测试发现,问题依然很多。。。比如播放一段时间后莫名中断,有时无法P2P。。。。
至此,mysee三个版本全部接触过,果真是个令真震撼的开源项目,八卦的话咱就不多说了,既然是来学习的,代码还得深入的看,经过两周的编译、调试,才发现自己是多么的才疏学浅,居然没能把这套东西稳定运行。。。。
第三个是P2PCenter,有人说这个项目是个团队开发,不如mysee有公司背景,我不知道这位兄台是否亲自编译过这些项目,就我学习的经验来看,P2PCenter采用UDP协议,比mysee的tcp更适合做P2P,P2PCenter编译可直接部署运行,至于稳定性我无法评论,因为我主要学习直播,而P2PCenter是无法实现直播的,虽然网上都在转载它可以直播,但我没有看出来它如何直播。
如果让我推荐,那么我首推P2PCenter,无论你做直播还是点播,这个应该都是最佳选择,点播可以直接部署,直播需要自己写个采集MMS流的模块。
纯学习推荐peercast,虽然太老,但是个非常成熟的项目,值的学习。
至于mysee,如果你的空余时间多,有充分的时间DEBUG,那么可以去看看。至少我个人认识这个项目没啥可学习的地方,首先他是TCP的协议,本身就不适合做P2P,再着问题不是一般的多。
P2P直播、点播技术学习经验的更多相关文章
- 从技术小白到收获BAT研发offer,分享我的学习经验和感悟(赠送相关学习资料)
去年秋季参加了校园招聘,有幸拿到了BAT.头条.网易.滴滴.亚马逊.华为等offer,经过研究生两年的学习积累,终于达成了自己的目标,期间也经历了很多,谨以此文,聊表感叹,也会分享很多我的Java学习 ...
- 实时视频直播客户端技术盘点:Native、HTML5、WebRTC、微信小程序
1.前言 2017 年 12 月,微信小程序向开发者开放了实时音视频能力,给业内带来广阔的想象空间.连麦互动视频直播技术在 2016 年直播风口中成为视频直播的标配,然而只有在原生的 APP 上才能保 ...
- 如何实现1080P延迟低于500ms的实时超清直播传输技术
再来当一次技术搬运工,内容来自高可用框架,学霸君工程师袁荣喜的如何实现1080P延迟低于500ms的实时超清直播传输技术. 导语:视频直播是很多技术团队及架构师关注的问题,在实时性方面,大部分直播是准 ...
- 视频技术详解:RTMP H5 直播流技术解析
本文聚焦 RTMP 协议的最精华的内容,接进行实际操作 Buffer 的练习和协议的学习. RTMP 是什么 RTMP 全称即是 Real-Time Messaging Protocol.顾名思义就是 ...
- IT软件人员的技术学习内容(写给技术迷茫中的你) - 项目管理系列文章
前面笔者曾经写过一篇关于IT从业者的职业道路文章(见笔者文:IT从业者的职业道路(从程序员到部门经理) - 项目管理系列文章).然后有读者提建议说写写技术方面的路线,所以就有了本文.本文从初学者到思想 ...
- IT技术学习指导之Linux系统入门的4个阶段(纯干货带图)
IT技术学习指导之Linux系统入门的4个阶段(纯干货带图) 全世界60%的人都在使用Linux.几乎没有人没有受到Linux系统的"恩惠",我们享受的大量服务(包括网页服务.聊天 ...
- Android中直播视频技术探究之---基础知识大纲介绍
一.前言 最近各种视频直播app到处都是,各种霸屏,当然我们也是需要体验的,关于视频直播的软件这里就不介绍了,在不是技术的人来看,直播是一种潮流,是一种娱乐方式,但是作为一个高技术的,我们除了看看,更 ...
- P2P直播承载平台与CDN直播承载平台比较
收看软件不一样:CDN直播收看无需安装第三方收看软件,一般操作系统已带播放器软件:P2P直播收看需要安装厂家自己的播放器软件,每家P2P的软件不兼容,收看者要装多套软件才能收看不同内容. 收看人数不一 ...
- nginx视频直播/点播服务干货分享
一.ubuntu14.04安装nginx及nginx_rtmp_module扩展 nginx根据是否已安装和安装的方式不同,有一下三种方式安装及扩展安装. 1.全新安装nginx和nginx_rtmp ...
随机推荐
- uva 10313
递推 参考了别人的解法 dp[i][j] 表示价值为i用j个硬币可以有多少种方法 dp[j][k] += dp[j-i][k-1] 意思是多加一枚价值为i的硬币,加上价值为j-i用k-1个硬币的总 ...
- POJ3250Bad Hair Day
http://poj.org/problem?id=3250 题意 : n个牛排成一列向右看,牛 i 能看到牛 j 的头顶,当且仅当牛 j 在牛 i 的右边并且牛 i 与牛 j 之间的所有牛均比牛 ...
- hdu 1133 Buy the Ticket
首先,记50的为0,100的为1. 当m=4,n=3时,其中的非法序列有0110010; 从不合法的1后面开始,0->1,1->0,得到序列式0111101 也就是说,非法序列变为了n-1 ...
- struts2 json关于Date日期的解析
在get方法前加上: @JSON(format="yyyy-MM-dd HH:mm:ss")
- stringgird中使用TClientDataSet排序的问题
function TfrmMain.createIIReport(cdsBody: TClientDataSet; silent: Boolean): String;var s,sText: ...
- MD5加密算法测试
在用户注册这一块,密码加密保证客户信息安全是最重要的,在网上查询了一些资料,发现加密算法比较流行的有MD5,DES和SHA. 虽然SHA与MD5通过碰撞法被破解了,但是MD5和SHA仍被公认是安全的加 ...
- JAVA! static什么作用?
是静态修饰符,什么叫静态修饰符呢?大家都知道,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只 ...
- HTML5入门4---HTML5 与 HTML4 同一网页的不同写法
HTML4写法 css: body { font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana ...
- Hibernate逍遥游记-第13章 映射实体关联关系-003单向多对多
0. 1. drop database if exists SAMPLEDB; create database SAMPLEDB; use SAMPLEDB; create table MONKEYS ...
- Delphi判断字符串是否是数字、字母、大小写字母
function IsNumberic(Vaule:String):Boolean; //判断Vaule是不是数字 var i:integer; begin result:=true; //设置返回值 ...