基于流媒体的网络视频直播系统设计与实现
2019-10-21付长钧
摘 要:随着社会的发展,移动网络技术逐渐普及开来,流媒体网络视频直播因其便捷性,正在占据生活的每个角落。流媒体的网络视频系统的出现,让身处不同地区的教师以及学生,可以借助移动终端平台实现互动交流,共同讨论需要解决的问题。在传统意义上,流媒体只能是录播视频,单方讲演,不能实时互动。但是网络技术的普及,直播系统的建立,使得流媒体的网络视频互动变得触手可及,笔者设计出一种基于流媒体的网络直播系统,打破传统模式,供相关研究者作参考。
关键词:流媒体;网络视频直播;系统设计
前言
新世纪以来,互联网技术突飞猛进,移动终端设备走进千家万户。新一代流媒体的出现,很大程度上改变了人们的生活学习方式,传统PC端正在逐渐向着移动端过渡,通过移动端流媒体进行网络视频直播的需求日益剧增[1]。通过直播系统,学习者可以与老师实现自由互动,增强学习效果,提高学习效率。笔者设计的直播系统,借助云服务平台,经过一定的转化之后送达到用户的终端。
1基于流媒体的网络视频直播系统设计体系
1.1支撑技术简介
(1)流媒体直播技术。与传统的PC端多媒体相比较,流媒体使用便捷、适用性强。在日常教学、专题报告讲座等主题活动中均可应用。流媒体网络视频直播系统主要由几个部分组成:数据收集、形成代码、媒体推动、网络分配、终端输送等。
(2)流媒体直播云服务技术。云服务是网络技术的快速发展的产物,一方面避免了较高的运行使用成本,同时安全性较高。当下,云服务主要有基础设施、平台以及软件这三项服务,借助开发工具迅速搭建直播平台。
1.2直播系统结构
整个流媒体网络视频直播系统由四个子程序构成,分别是基础支撑层、服务层、应用层以及展现层。四个层面之间相互关联,基础层主要是确保系统运行环境的稳定;服务层是直播功能实现的保障;应用层则是使得目录、音频等对系统进行转化,数据传输;展示层则是将数据内容转化为视频传输到用户终端平台。
1.3系统运行架构
直播模块是流媒体网络视频直播系统中最核心的部分,直播方使用符合条件的终端启动直播客户端,经过系统检测合格之后,自动连接云服务平台进行推流[2]。推流成功之后,会对直播音频视频等进行代码转换,传输到用户端,进行播放,实现流媒体网络视频直播功能。
1.4优化流媒体直播弱网问题
当用户移动终端在进行网络切换时,会占用一定的宽带通道,从而接受不到高清视频内容。因此,在本系统中,针对网络的波动,直播系统会自动调节视频清晰度和画面帧数,以适应当前网络。
2、基于流媒体的网络视频直播系统实现
2.1基于流媒体的网络视频直播系统直播采集
当直播端向业务服务器发起用户请求时,业务服务器会立即向SDK要求建立起直播流的请求,SDK收到请求时则会通过实时流的网络将JSON返回给业务服务器,随后将播放地址返回给直播端并在本地记录好播放地址。直播调用代码如下:
{
" credentials"∶ {
" accessKey"∶ " < Your AK > " / /用于验证访问是否合法
的密钥
" secretKey"∶ " < Your SK > " / /匹配密钥
} ,
" id"∶ " z1. Realaddress-1. class-99" / /用户直播间ID
" createdAt"∶ " 2016-11-24T14: 23: 33. 474Z" / /创建新直
播间
" updatedAt"∶ " 2016-11-24T14: 23: 33. 474Z" / /直播间更新
时间
" title"∶ " class-99" ,/ /直播间名称
" hub"∶ "Realaddress-1" ,
" publishKey"∶ " a32498a5f43a7237" ,
" publishSecurity"∶ " static" ,
" disabled"∶ false,
" profiles"∶ null,
" hosts"∶ {
" publish"∶ {
" rtmp"∶ " test-publish. Realaddress. cn" / /发布直播推流
地址
} ,
" live"∶ { / /直播中各种编码格式对应的推流地址
" hdl"∶ " test-live-hdl. Realaddress. cn" ,
" hls"∶ " test-live-hls. Realaddress. cn" ,
" http"∶ " test-live-hls. Realaddress. cn" ,
" rtmp"∶ " test-live-rtmp. Realaddress. cn" ,
" snapshot"∶ " test-live-snapshot. Realaddress. cn"
} ,
" playback"∶ { / /直播反饋地址
" hls"∶ "100029c. playback1. z1. test. qiniucdn. com" ,
" http"∶ "100029c. playback1. z1. test. qiniucdn. com"
} ,
" play"∶ { / /播放实时地址
" http"∶ " test-live-hls. Realaddress. cn" ,
" rtmp"∶ " test-live-rtmp. Realaddress. cn"
}
}
}
2.2基于流媒体的网络视频直播系统功能的实现
网络视频直播系统的主要功能是通过移动客户端的APP实现的。该系统主要有九大功能:
(1)课程直播。老师可以通过移动客户端进行实时讲课,并与学生进行实时的课堂互动;
(2)课程浏览。学生可以在老师的直播列表中进行选择,也可以在直播界面发送文字消息进行交流,或者通过连麦的方式,实时的进行音视频的互动交流;
(3)课程点播。视频直播系统会对课程进行实时同步的刻录,并存储到云服务的平台,以便用户随时的回看课程内容;
(4)课程筆记。系统会同步的保存课程中的学习笔记、课程要点以及视频截图等;
(5)课程交流。直播期间,学生老师之间可以添加为好友,课后可以通过系统内置的交流功能进行课程的交流与讨论;
(6)设置用户信息。可以进行个人信息设置,例如修改头像、修改登录密码、关注或取消课程的关注、绑定手机号等;
(7)系统设置。设置课程直播信息提示、直播课程的同步刻录、清理缓存等;
(8)问题帮助模块。对于系统中常见的问题,给出相应的解决方法,也可以通过目录检索的方式快速查询问题的解决方案;
(9)退出模块。关闭进程,清空数据,退出系统程序。
2.3基于流媒体的网络视频直播系统播放端的实现
用户在观看直播时,需要从服务器上获取所有房间的播放地址,然后在选定直播间时,播放端会自动匹配流媒体的编码格式,从而播放直播视频。业务服务器只需要对房间进行创建和调度,从而保证直播的顺利进行。具体实现代码如下:
{
" publish" " rtmp: / /test-publish. Realaddress. cn /Realaddress-1 /
class-1? key = 0ec27ba231c0a90c" ,
" play"∶ { / /播放端从业务服务器中获取到的播放地址列表
" ORIGIN "∶ " rtmp: / /test-live-rtmp. Realaddress. cn /
Realaddress-1 /class-1"
} ,
" id"∶ " z1. Realaddress-1. class-1" / /获取直播间ID
" title"∶ " class-1" / /直播间名称
}
3、基于流媒体的网络视频直播系统测试
经过初步系统设计完成之后,笔者设置了多种使用环境,对系统进行了全面性测试,以期找出不足之处进一步改进,主要对推流、转码等数据设计做了修正。
3.1视频与音频测试
授课教师或者网络主播在打开直播系统客户端之后,可以看到在直播界面上呈现直播画面、讲授内容、直播间流量等。直播方可以控制文字发送功能,也能够对用户所发表的言论进行筛选,有选择地接受[3]。当直播方打开音频,在麦克风正常使用的情况下,可以实现与用户的互动,此时,用户的画面则是小窗口的方式出现在屏幕一角,从而进行交流,交流内容可以被所有用户查看与聆听。
3.2弱网优化功能测试
笔者借助ATC软件程序,在WiFi以及3G、4G以及Gprs等多种网络环境中进行切换,测试流媒体网络视频直播系统的弱网优化功能,通过视频显示软件进行查看,并记录下视频播放过程中的卡顿情况,多次测试下来,笔者发现该软件流畅系数比当前市场上常用直播软件要高出6%左右。
4、结论
综上所述,笔者设计的基于流媒体网络视频直播系统不仅使用方便,适用性强,而且成本不高,这主要得益于云服务平台。本文从流媒体当前的发展情况讲起,接着介绍了系统的技术架构、结构体系、设计依据、实现方式等方面,并对它进行了一系列改善测试。社会的快速发展,无疑给人们生活带来了巨大的改变,提高了生活水平。流媒体网络视频直播系统的研发,主要给教育领域带来了新的方向与平台,相关科研人员应该对流媒体网络视频直播系统进行不懈的研究与创新,最大化对当前教育的变革创造条件,为各个地区建设智慧校园提供强有力的保障。
参考文献:
[1]黄明, 叶德建. 基于HTML5的加密直播系统设计与实现[J]. 微型电脑应用, 2017(7):43-47.
[2]许雯. 基于HLS流媒体视频直播的QoE分析模型设计与实现[J]. 西安航空学院学报, 2017, 35(3):66-68.
[3]孙恒. 基于多终端的移动流媒体直播系统设计与实现[J]. 实验室研究与探索, 2018, 37(08):322-327.
作者简介:付长钧(1996-),男,满,辽宁省开原市,本科,研究方向:网络.