您好, 访客   登录/注册

基于Nginx的实验室直播系统研究与实现

来源:用户上传      作者:

  摘要:针对传统实验教学中实验室对上课人数有限制的问题,避免互联网直播平台对知识产权和隐私保护的诸多不足,利用RTMP流媒体技术,研究并实现一种基于Nginx的网络多媒体直播系统。该直播系统除了可以使用计算机或手机终端进行直播和观看以外,还可以使用多个直播间对不同的课程进行同步直播。该研究解决实验室空间上的限制,以及对实验教学的信息与网络化提供了有力的技术支撑。
  关键词:Nginx;直播系统;RTMP;实验教学;流媒体
  中图分类号:TP393      文献标识码:A
  文章编号:1009-3044(2020)23-0084-03
  Abstract: In view of the limitations of the number of classes in the traditional experimental teaching, the Internet live broadcast platform avoids many shortcomings of intellectual property rights and privacy protection. Using RTMP streaming media technology, a Nginx-based network multimedia live broadcast system is researched and implemented. In addition to the live broadcast and viewing using a computer or mobile terminal, the live broadcast system can also use multiple live broadcast rooms to simultaneously broadcast different courses. The study addresses the limitations of laboratory space and provides strong technical support for experimental teaching information and networking.
  Key words: Nginx; live broadcast system; RTMP; experimental teaching; stream media
  1 背景
  随着网络技术的不断深入发展,网络直播也逐渐地被大众所接受,该技术也越来越多地被各高校应用到实验教学中。与传统实验教学相比,网络直播教育具有实时性和开放性的特点, 它打破传统的、封闭的教室教学模式,学生可以在任何时间、任何地点学习任何已开放的直播课程,是区别于传统教育以面授为主的一种新型教育模式[1]。但是在使用互联网直播平台作为直播教学过程中,会碰到直播中被允许观看人员范围不可控,课堂教学互动中学生也隐私难以保护,网络直播课堂课件的影音资料难以界定是否侵权的问题[2-3]。因此如何构建具备直播效果好、访问可控、经济性好的实验室直播系统是目前急需研究的课题。
  2 基于Nginx的实验室直播系统结构
  基于Nginx的实验室直播系统由前端编码系统、流媒体传输网络、直播服务系统和终端解码系统构成,其基本体系结构如图1所示。
  从图1中可以看出,实验室直播系统是以流媒体传输网络为主要衔接,首先将前端编码系统生成的流媒体数据传输到直播服务系统,直播服务系统提供直播服务、网页服务和转发服务,最后终端解码系统把直播服务系统传输过来的流媒体数据再进行解码,通过以上流程形成了一个完整的运行体系。
  3 基于Nginx的实验室直播系统组成
  实验室直播系统由4个大系统组成,每个大系统又有多个子系统组成,详细工作流程图如图2所示。
  3.1 前端编码系统
  前端编码系统主要功能是把前端设备所采集到的图像声音等信息进行数字化编码,并将这些流媒体传输到直播服务系统。前端解码系统包换两个前端工作模块,分别是计算机端和移动设备端。
  3.1.1 计算机端
  计算机端的流媒体传输主要依靠软件OBS(Open Broadcaster Software 开放广播软件)实现。OBS是一个免费开源的实时流媒体传输软件,支持多种场景和视频源,支持DirectShow采集设备,支持实时RTMP流推送等多种功能,并广泛应用在各种直播领域。
  教师演示计算机安装OBS后,可以将多种场景如计算机桌面板书、摄像头拍摄教室情况和话筒录制的教室演讲等多种内容一同合并编码,将流媒体数据传输到直播服务系统。
  3.1.2 移动设备端
  随着高速移动互联网的发展,移动设备直播因此成为直播系统中最为广泛的应用。移动设备选择推流App,该软件是泛用直播工具,可以支持苹果和安卓两大智能手机平台,可以轻松将移动设备前后摄像头画面和移动端屏幕显示的应用内容传输到直播服务器。
  3.2 流媒体传输网络
  流媒体传输网络依托于以太网,主要使用RTMP协议(Real Time Messaging Protocol 实时消息传输协议)传输流媒体,以及HTTP协议(Hyper Text Transfer Protocol 超文本傳输协议)提供网页服务。
  3.2.1 RTMP协议
  RTMP 协议是客户端与服务端之间的传实时消息传送协议,其是专门为视频、音频等数据高效传输而设计的协议,主要用来在支持RTMP协议的流媒体与交互服务器之间进行视频、音频和数据通信[4]。相对于传统的TCP(Transmission Control Protocol 传输控制协议)或UDP(User Datagram Protocol 用户数据报协议) 媒体传输协议来说,其支持更多的数据从服务端到客户端和从客户端到服务端的多线路动态传输,并且支持数据脚本。   RTMP协议报文使用二进制编码的AMF格式封装,编码经过高度压缩和序列化,提高了传输速度和效率,保证数据所需的网络传输消耗最小,达到实时性要求,非常适合用来传输大量的流媒体数据[5-6]。在流媒体传输网络中,RTMP协议可以使视频音频等信息在终端到服务器和服务器到终端之间以较快速度传输。
  3.2.2 HTTP协议
  HTTP协议于1990 年提出, 由WWW 组织定义和发布的應用层协议,是目前应用的最为广泛的一种应用层协议,采用了请求响应模型,是用于从WWW服务器传输超文本到本地浏览器的传输协议[7-8]。直播服务器遵循HTTP协议为终端提供页面服务。
  3.3 直播服务系统
  直播服务系统是整个实验室直播系统的核心,采用Nginx服务为各个系统提供直播服务和网页服务,以CKplayer页面播放器来实现实验室直播的在线观看。
  3.3.1 Nginx
  Nginx被认为是一款强大的高性能服务器软件,该软件集成web 服务、电子邮件服务和反向代理服务。它的特性是服务所占用系统内存极少,网页数据集链接并发能力很强,软件轻巧而支持的功能极其丰富,在同种的网页支持服务器中表现较为出色[9]。
  Nginx 采用多进程的方式工作,由一个Master 进程和多个worker 进程组成,其中Master 进行主要负责接收外部控制信号,基本的网络事件则由worker 进程处理[10]。Nginx本身是支持页面服务的,其附加的Nginx-RTMP-module模块用来实直播系统现直播功能。
  3.3.2 CKplayer
  CKplayer是一款多功能页面播放器,基于Nginx的页面服务,为终端提供在线播放功能。CKplayer支持基于HTTP协议的FLV、MP4等格式文件同时也支持RTMP协议的流媒体播放。该播放器会在播放时还会自动选择使用HTML5技术或基于Flash技术的播放器进行播放,大大提高了终端的兼容性。
  3.4 终端解码系统
  终端解码系统包含两个子系统,即计算机端和移动设备端。两个终端只需要使用任意浏览器访问直播服务器,即可以凭借CKplayer强大的在线播放功能,实现对直播流媒体在线播放,从而达到解码的目的。
  4 基于Nginx的实验室直播系统实现
  4.1 系统基本环境
  直播服务器采用一台4核4线程内存为8GB的HP 服务器,操作系统为Microsoft Windows Server 2008r2,Nginx版本为1.14.1,Nginx-RTMP-module模块版本为1.2.1。传输网络采用支持全千兆的华为S5700交换机,前端编码和终端解码均采用普通台式机,操作系统为Windows 7。
  4.2 系统压力测试
  在以上基本环境下,配置服务器Nginx的conf配置文件开启直播间live,使用一台普通台式机作为前端编码机器,使用OBS播放高清视频传输到直播服务器,直播的分辨率为1920x1080,编码为H264 High 4.0,码率为5.25 Mbps。测试方法为逐步增加解码终端的数量,考验直播服务系统与传输网络承载能力,测试结果如表1所示。
  由表1为可以看出,随着客户端的不断增加,输入数据量缓慢增长,输入速度基本稳定在5.5MB/s,这个和直播系统输出的码率基本符合。而输出数据量成倍增长,输出速度也稳定增长,符合转发服务器特性,达到系统设计目标。在达到200个客户端的时候,输出速度高达984.44MB/s,已经达到1000M网络的极限。如果将输出分辨降低一些,输出码率减少到一半,此系统将可以承载达到400个客户端,基本满足普通高校实验室的需求。
  5 结束语
  针对目前高校实验室教育出现的实际问题,利用先进的网络媒体技术,以较小的代价实现了资源利用率高、运行稳定的实验室教学直播系统,丰富了实验室教学模式。该系统的成功实现是实验室教学的一次重要升级。
  参考文献:
  [1] 魏冰石. 开放教育直播教学的问题及对策探析[J]. 吉林广播电视大学学报, 2018(8): 98-99, 112.
  [2] 朱巍, 田莹. 互联网直播与隐私权保护的冲突与平衡[J]. 中国广播, 2017(8): 43-48.
  [3] 赵世兰, 张荧子暄. 网络直播中的音乐版权问题研究[J]. 音乐传播, 2018(3): 101-105.
  [4] 范围. 基于RTMP协议的视频系统的应用探析[J]. 电子测试, 2015(22): 119-120.
  [5] 黄波, 张先辉. 基于RTMP协议的IPTV监测系统设计与实现[J]. 广播电视信息, 2018(7): 103-107.
  [6] 王艳. Android系统中RTMP流媒体直播的设计与实现[J]. 电视技术, 2017, 41(1): 64-67.
  [7] 陈忠菊. HTTP服务器的研究和实现[J]. 电脑编程技巧与维护, 2018(8): 133-135.
  [8] 李琳. 独立学院网络环境下基于Nginx的反向代理的研究与应用[J]. 信息技术与信息化, 2018(10): 102-103.
  [9] 张炜森, 陈涛, 李康. Nginx高并发负载均衡原理与策略比较研究[J]. 工业控制计算机, 2018, 31(1): 85-86, 89.
  [10] 胡亮, 零宗谕, 陶杜辉, 等. 基于HTTP协议的信息系统信息泄露的探究[J]. 企业科技与发展, 2018(1): 62-64, 67.
  【通联编辑:谢媛媛】
转载注明来源:https://www.xzbu.com/8/view-15316332.htm