局域网环境下的直播平台(校园电视台)搭建之路
近些年,随着互联网视频的普及,各个行业都在通过视频这种流行的方式来发布内容,生动、直观这是它的天生优势。
作为学校里的一名信息中心老师,领导发话也要模仿兄弟单位建立我校自己的视频门户,用来把学校发生的新鲜事、学校师生的荣誉、优秀学生的事迹、还有领导的重要指示精神,都想用视频这种新鲜的方式去呈现,让人们更关注,更喜欢。
说实话,虽然自己从事信息技术和多媒体已经有8年多时间,对摄像、视频编辑、美术设计都还算熟悉,也通过社会化视频平台做过直播,比如(优酷、花椒、微博、一直播)等,但是自己去搭建这种平台还是头一次,也是一头雾水。
本着对领导负责的态度,我开始潜心研究和学习,开始,我自己设计了一个简单的网站,将摄像机的视频采集后推送到了微博视频平台,然后将微博的播放地址嵌入到自己的网站上,以为这样万事大吉。测试后发现,收看的人数达到50人以上就异常卡顿,最终找到了原因,是因为学校的公网出口太窄导致的,学校总的公网出口只有100Mb/s,720P的直播50人收看就把带宽跑满了。看来,需要在校内搭建自己的发布服务器才能最终解决这个问题。
沿着这个思路,我开始寻找自己的解决方案,幸运的是,由于自己常年在CSDN上啃食着知识,也在这里找到了解决问题的办法,是一个版主的博文帮我打开了思想的大门。在这里,我找到了串流直播这款专业的免费直播软件,同时,还测试了VLC、FFMPEG、OBS这几款免费的直播采集编码工具,相比较下来,我觉得串流直播这个软件做的是最好的,下面是我自己的测试结果。
软件名称 |
功能完整性 |
稳定性 |
性能 |
易用性 |
FFMPEG |
完整 |
极不稳定 |
很差,占用资源比较高 |
最差 全部为命令行方式操作 |
VLC |
一般 |
极不稳定 |
很差,占用资源比较高 |
一般 |
OBS |
相对完整 仅支持H.264视频编码和RTMP推流发布 |
一般 |
一般,做了部分优化设计 |
一般 有图形化界面,但是设计不是很人性化 |
串流直播 |
很完整 支持H.264/H.265 /MPEG-4/MPEG-2多种视频编码; 支持AAC/HE-AAC/MP3多种音频编码 支持TS/MP4/FLV/F4V /MOV多种录制格式 支持UDP/RTSP/RTMP /HTTP多种发布协议 支持组播加密,字幕/台标叠加,图像处理 支持硬件加速编码 |
很稳定 |
很高 占用CPU和内存资源都很低 |
易用 有图形化操作界面 人性化设计 功能直观,操作简单 |
至此,直播节目采集处理的工作已经完成,但是,为了能够将节目发布出去在网页端进行呈现,还需要搭建流媒体服务器来提供支撑,为此我查阅了大量资料,又在互联网上进行疯狂检索,为此我反复测试了不下十五个流媒体平台软件,之所以要做这么多工作,主要是奔着为学校省钱的目的(小地方的学习,经济比较寒酸^-^),其次,也是为自己充充电,通过这次实践,我发现自己学会了好多流媒体方面的知识。
整个测试工作异常艰辛(主要因为无人指点全靠自学,还有就是要搭建各种测试环境),为此我几乎调用了学校所有的网络资源,包括服务器、交换机、防火墙、教师机等,期间我做了服务器压力测试、带宽压力测试、组播功能测试、单播功能测试、终端解码能力测试、多码流自适应播放测试、音视频同步性测试、直播延时测试、大并发稳定性测试(包括服务器平台稳定性和校园网稳定性)等诸多测试工作。
下面是我对这些测试结果的一个记录和总结:
软件名称 比较项 |
iAVCastMediaServer (串流媒体服务器) |
Red5 |
Nginx-RTMP模块 |
Wowza |
Adobe AMS5 Extended |
开发语言 |
C++ |
Java |
C++ |
Java |
C++ |
单播并发性能 (以2Mbps视频为例) |
5000并发 |
300并发 |
1000并发 |
300并发 |
500并发 |
支持的操作系统平台 |
Linux/Windows |
Linux Windows |
Linux |
Linux Windows |
Linux Windows |
稳定性 |
非常稳定 |
一般 |
稳定 |
一般 |
稳定 |
易用性 |
强,有直观的图形化操作界面 |
差 |
一般 |
差 |
一般 |
支持的输出协议类型 |
RTMP HTTP HLS DASH RTSP |
RTMP RTMPT RTMPS RTMPE RTSP |
RTMP HLS |
HLS RTMP DASH RTSP |
RTMP RTMPT RTMPS RTMPE RTMFP HLS |
直播/点播功能 |
支持 |
支持 |
支持 |
支持 |
支持 |
直播录制 |
支持录制为MP4、FLV 支持最大录像文件尺寸限制;支持最大录制时长限制 |
录制为FLV |
录制为FLV |
支持录制为MP4、FLV |
支持录制为MP4 |
多码流自适应 |
支持RTMP/HLS/DASH多码流自适应 |
不支持 |
不支持 |
支持RTMP/HLS/DASH多码流自适应 |
支持HDS多码流自适应 |
缩略图和播放预览图自动提取 |
支持 |
不支持 |
不支持 |
不支持 |
不支持 |
直播流转发 |
支持 |
不支持 |
支持 |
支持 |
支持 |
直播流分发 |
支持 |
不支持 |
支持 |
支持 |
支持 |
多服务器负载均衡 |
支持 |
不支持 |
不支持 |
不支持 |
不支持 |
直播录像自动入库 |
支持 |
不支持 |
不支持 |
不支持 |
不支持 |
图形化监控 |
支持 |
不支持 |
不支持 |
不支持 |
支持 |
点播节目批量入库 |
支持 |
不支持 |
不支持 |
不支持 |
不支持 |
支持的播放终端类型 |
PC/Android/iOS/STB |
PC |
PC |
PC |
PC |
内容管理系统 |
有 |
无 要自己开发 |
无 要自己开发 |
无 要自己开发 |
无 要自己开发 |
多终端内容呈现 |
有 支持PC/手机/机顶盒 |
无 要自主开发 |
无 要自己开发 |
无 要自己开发 |
无 要自己开发 |
多终端自动适配 (码流和协议) |
支持 |
不支持 |
不支持 |
不支持 |
不支持 |
开源/收费标准 |
不开源 6万元/实例(流媒体系统) 4万元/实例(内容管理系统) |
开源 免费 |
开源 免费 |
不开源1995美元/实例 |
不开源 6000美元/ 实例 |
技术支持和服务 |
官方提供完善的 技术支持,能提供 上门安装和培训 |
无 |
无 |
线上社区提供,只能用英文交流 |
线上社区提供,只能用英文交流 |
以上测试工作完成后,根据以上多个平台的特性,我把我们学校自身的需求也做了一下梳理:
- 我们这所职业学校有5千多名师生,因此活动直播时需要平台支持5000并发收看;
- 学校信息中心维护人员比较少,懂流媒体技术的人员只有我一个,而且我还要身兼数职,所以需要一个稳定可靠,操作简单并且维护方便的平台,交给普通技术人员去维护;
- 我们自己没有软件开发能力,对流媒体和内容管理平台开发都一无所知,是否开源对我们不重要,我们只想要一个功能完整的系统,装好就能用;
- 我们需要平台支持PC端和智能手机端播放;
- 我们需要直播节目可以自动录制下来,并且自动生成可以回放的节目;
- 需要支持多服务器负载均衡,用来满足未来更大的并发用户量;
- 最好能支持多码流发布和多终端适配,给手机端自动分发低分辨率/低码流的内容来降低网络带宽压力;
- 需要在出现问题的时候能有人提供及时的技术支持;
然后,我将我们自身的需求与以上几个不同平台的特性做了一下比较,以下是比较后的结果:
在技术实现上:
1.“串流媒体服务器”最符合我们的使用要求,用1台服务器就可以满足需要;
2.“Wowza”和“FMS”基本上也都具备主要功能,但是还需要自己找人开发内容管理系统和前台网站,这对我们来说是比较头痛的事情。
3.使用“Wowza”这个系统需要部署12台服务器,使用“FMS”系统需要部署10台服务器;
在成本方面:
- 使用“串流媒体服务器”系统,需要花费10万元购买流媒体软件和内容管理发布平台软件,需要花费3万元购买1台Dell R730服务器,总费用13万元;
- 使用“Wowza”系统,需要花费12 x $1995 = 16.5万元(人民币)购买软件,需要花费12 x 3万元 = 36万元购买12台Dell R730服务器,需要花费至少8万元找人开发内容管理和发布平台,总费用60.5万元;
- 使用“FMS”系统,需要花费10 x $6000 = 41.4万元(人民币)购买软件,需要花费10 x 3万元 = 30万元购买10台Dell R730服务器,需要花费至少8万元找人开发内容管理和发布平台,总费用79.4万元;
我把以上实际情况汇报给学校领导,领导基于节省成本的目的选择了“串流媒体服务器”这个平台,并对我所做的工作给予了表扬(心中窃喜~_~,说不定以后评职称会有用呢)
接下来,我找了学校机房里一台空闲的Dell R720旧服务器进行部署测试,很快,在厂商的远程配合下,我用了2天时间就把一个完整的平台搭建起来了,直播、点播、内容管理后台、内容发布前台等功能都一应俱全,和“优酷”网站差不多。而且,最让我出乎意料的是,整个平台的内容播放都不需要安装Flash播放器,PC端网站和手机端播放都使用HTML5技术,终于提前告别了烦人的Flash播放器(目前很多流媒体默认都不启用对它的支持了)。
下面是我的劳动成果,炫耀一下^-^
首页
节目回看页面
直播收看与互动
采集编码端控制台画面
四个码流同步直播
最后,非常感谢那些在我学习的过程中给予我灵感和帮助的那些版本,
下面是我参考过的相关文章链接:
https://blog.csdn.net/zhiboshequ/article/details/54023521
https://blog.csdn.net/zhiboshequ/article/details/54388346
https://blog.csdn.net/zhiboshequ/article/details/79865850
https://blog.csdn.net/ababab12345/article/details/52416310
https://www.cnblogs.com/georgewangii/p/4509818.html
https://blog.csdn.net/educast/article/details/81772184
========================================================================
原文链接:
https://blog.csdn.net/lovemycountry/article/details/90749141
局域网环境下的直播平台(校园电视台)搭建之路相关推荐
- 局域网共享工具_局域网共享精灵,一款助力于局域网环境下文件共享和打印机共享的系统工具软件...
局域网文件打印机共享精灵系统工具软件是一款助力于局域网环境下文件共享和打印机共享的系统工具软件,它能助力于快捷高效的在您的局域网内实现文件共享和打印机共享的操作,有效提升办公效率. 11.下载地址: ...
- 同个网络计算机之间怎么共享,在局域网环境下的多台电脑之间如何实现文件共享需求呢?...
在企业办公过程当中,我们经常需要针对同一个文件.文件夹和其他同事一起协作.共享,那么,在局域网环境下的多台电脑之间如何实现 操作步骤: 1.打开文件共享:"启用网络发现".&quo ...
- jupyter notebook设置局域网环境下使用
jupyter notebook设置局域网环境下使用 jupyter notebook开启局域网使用权限后,终于可以使用平板在家里各个地方学习python啦! 开启方式 只需要三不即可开启局域网,分别 ...
- 直播平台源码搭建教程盘点直播技术中的编解码、直播协议、网络传输与简单实现
直播平台源码搭建教程盘点直播技术中的编解码.直播协议.网络传输与简单实现 Live CheatSheet | 直播技术理论基础与实践概论 音视频直播的基本流程都是采集 → 编码推流 → 网络分发 → ...
- 直播平台开发时iOS 开发内购功能,直播平台源码搭建
1.首先登录苹果账号,在直播平台源码搭建完成好后,进入后台管理中心添加商品,选择功能----App内购买项目------添加商品类型.商品的ID.以及说明信息. 2.在直播平台源码搭建后台创建沙盒测试 ...
- 在找直播平台源码搭建教程?先看看这些吧
很多人都在找直播平台源码教程,但其实连一些基础知识都不知道,因此小编特地编辑了这份跟直播平台源码搭建相关知识,以供大家进行学习. 1.服务器的选择: 服务器是搭建直播平台唯一需要购买的硬件设备,通常会 ...
- 直播系统源码App中Android酷炫礼物动画直播平台源码搭建教程(上篇)
直播系统源码App中Android酷炫礼物动画直播平台源码搭建教程(上篇) 在当下移动直播火爆的年代,如果你曾经使用过移动端直播应用,相信会被里面那令人惊叹的礼物动画效果迷住,比如像下面这样的效果. ...
- 在Win10以及SDK为33的环境下——小米便签项目的搭建
文章目录 0. 我的操作系统和开发环境 1. 相关文件下载: 2. import project: 2.1 用import project导入项目 3. make project: 3.1 AS中的命 ...
- 计算机类短视频论文,论新媒体环境下短视频平台的发展--以秒拍为例.docx
摘要:在新媒体日益发展的环境下,短视频行业渐渐兴起."短视频"指的是一般在互联网新媒体上传播的时长在5分钟以内的视频传播内容.从2011年移动互联网技术的发展开始,移动短视频应用初 ...
最新文章
- python【力扣LeetCode算法题库】999-车的可用捕获量(DFS)
- numpy中的matrix矩阵处理
- [每天一个知识点]1-程序员的三大美德(1)
- BZOJ3577 : 玩手机
- mysql sql使用序列_SQL 使用序列
- 浅谈Nginx性能调优
- [转]Spinner的常用技巧
- docker学习-docker解决了什么问题
- golang 图片处理,剪切,base64数据转换,文件存储
- Scrapy爬虫框架详解
- 万能开头结尾(申论)
- android刮刮乐游戏布局,Android实现 刮刮乐效果
- word2016 上次启动时失败以安全模式能够解决该问题【office专业版】
- FC金手指使用方法+大全
- 小学五年级如何引导学计算机,怎么教五年级小孩数学
- 什么是论坛域名?论坛域名适用在哪些地方?
- oracle实时异地同步,异地Oracle数据库数据同步
- rgb 与 #开头16进制 HEX颜色值关系转换,颜色值透明度的百分数对应十六进制表
- 如何判断横屏还是竖屏?
- IgH详解十、EtherCAT DC(1)理论
热门文章
- 解决container_linux.go:262: starting container process caused:
- 新书推荐 |《机器学习:算法视角(原书第2版)》
- centos7远程登录ssh遇到问题解决
- [新版新概念英语1-4册全部视频和课本]
- 台式电脑F1F2变成音量键怎么办
- 狂神说smbms超市管理系统项目源码
- OpenWRT使用SNMP监测网络状态
- ios 裁剪框大小_iOS自定义裁剪图片比例尺寸,图片自动旋转解决办法
- spring boot 本地maven手动添加pom.xml依赖
- 【CAD】Java使用第三方类库解析CAD文件,详细接口说明