杨 雄
(福州大学至诚学院,福建 福州 350002)
基于视频转码与IP组播的网络影院系统设计
杨 雄
(福州大学至诚学院,福建 福州 350002)
云教室方案是由“服务器+云终端+交换机+云教室管理平台”组成,采用先进的云计算和虚拟化技术构建的云教室软硬件一体化平台,不仅能够满足各种教学软件的授课要求,还可以满足流畅播放高清视频的教学要求。其中的“网络影院”就是可以让老师在教师机上通过VLC播放媒体文件,学生在云终端上不必下载视频文件就可以实时流畅观看到该视频。文章利用VLC的实时视频转码和组播功能,并结合云终端Linux系统的GStreamer流媒体播放框架构建的网络影院系统,不仅能够支持720P高清视频的流畅播放,而且对视频源格式无限制,从而扩大了云教室方案的应用场景。
云教室;网络影院;VLC;视频转码;IP组播
在授课当中老师经常需要向学生广播视频或向所有学生展示某个学生屏幕,如计算机课、实验课。这是目前教学软件中常用的功能。可是在云教室[1]场景中,由于学生桌面都是虚拟桌面,如果将音视频发送给多个学生的虚拟桌面,会造成服务端压力大,占用网络带宽高[2]。且由于虚拟桌面的解码能力弱,会造成以下问题:(1)学生端播放不流畅;(2)教师端与学生端播放不同步。
本文提出的基于视频转码与IP组播的网络影院系统的创新点主要如下:(1)教师端采用标准RTP协议,利用局域网中路由器的组播功能,将音视频流组播到客户端,达到减少网络流量的效果。(2)教师端基于VLC[3]开源播放器进行定制,包括定制播放器界面、优化编解码参数、解决播放卡顿问题、支持1080P视频。(3)编码为标准H264流,容易兼容不同的学生端播放器,扩展性好。(4)将视频流在本地采用硬解进行解码、播放,以提高视频的流畅。(5)在播放过程中加入自定义音视频同步控制和低网络延时处理,提高视频播放体验[4]。
本文提出的适用于云教室的网络影院框架如图1所示。
网络影院中教师端使用的是VLC是VideoLAN公司出品的多媒体播放器,是一款自由、开源的跨平台多媒体播放器及框架,在大多数平台上支持硬件解码功能,可播放大多数多媒体文件,以及DVD、音频CD、VCD及各类流媒体协议。它能作为Unicast或Multicast的串流服务器在IPV4或IPV6的网络上使用。
本文中所使用的VLC 2.1.5版,教师机使用的是Windows 7系统。通过对VLC源代码的修改,使其不仅能够支持打开文件播放时实时转码和组播服务器的功能,而且还能够完成与客户端之间的命令相互。在播放视频文件时,将视频格式转换为统一720P大小、H.264压缩的视频,然后再进行组播,如此能够支持不同的视频格式。
图1 云教室网络影院框架
学生端的云终端[5]操作系统是基于ARM的嵌入式Linux系统,其上的网络影院客户端基于GStreamer[6]流媒体播放框架实现[3]。GStreamer是一款功能强大的通用流媒体应用开发框架,采用基于插件和管道的体系架构,能够实现插件间的无缝融合,为媒体播放器的开发提供了极大的便利。该云终端的硬件平台为Hi3716CV200,它能够支持GStreamer的框架的视频硬解码功能,能够支持1080P的H.264的视频硬解码,完成能够满足组播的720P的H.264视频格式。但由于目前的云终端方案中一般是使用百兆或千兆网络,1080P视频对网络带宽要求较高,而且720P高清视频已经能够满足实际的需求,所以在实际方案中仅使用720P高清视频,但如果局域网硬件升级,能使用G级网络,那也可以通过修改网络影院服务端的配置文件即可支持1080P高清视频。采用基于ARM的云终端,与X86云终端相比,不仅同样能够支持720P高清视频的流畅播放,而且降低了接近50%的硬件成本。
网络影院服务端需要能够在选择文件播放时将其进行转码后再通过UDP广播播放,流程如图2所示。
图2 网络影院服务端视频播放流程
关键参数为:
其功能为将视频转码为H264格式,视频大小为1280x720,帧率为25.同时将视频输出复制为屏幕和udp广播,组播地址和端口为:239.1.1.1:5004。
GStreamer是一个创建媒体应用程序的框架,其主要用途是构建媒体播放器。GSstreamer是基于插件的,具有任何符合规范的插件都可以方便地插入已定义的数据流管道的优点,因此,可以简化媒体播放器的开发流程,提高可移植性。
一个典型的基于GStreamer的媒体播放器如图3所示。
云终端的gst-plugins-base组件包内内置了硬件解码插件hicodec,并且修改了xvimagesink插件以支持视频从SDK的VO模块输出。
网络客户端的播放流程如图4所示。
本文提出的一种基于云教室场景下实现网络影院流畅播放的方法,利用局域网中路由器的组播功能,将音视频流组播到学生端,从而减少网络流量;教师端基于VLC开源播放器进行定制,包括定制播放器界面、优化编解码参数,教师端的编码采用标准H264流;将要播放的视频流在学生端采用硬件进行解码;同时在播放过程加入音视频同步控制播放。该方法解决云教室下网络影院播放720P高清视频流畅度低的问题,实现学生端播放流畅以及教师端和学生端音视频实时同步。
图3 GStreamer媒体播放器框架
图4 网络客户端的播放流程
[1] 贺媛婧.“云教室”应用模式探讨[J].软件导刊,2015(5):199-201.
[2] 郭庚雄.高清视频在“云教室”的应用[J].计算机光盘软件与应用,2014(10):221-222.
[3] 吕鹏,李莎.构建基于VLC的网络电视直播系统[J].电脑知识与技术,2009(7):1705-1706.
[4] 魏红宇.海洋环境信息云计算身份认证技术研究[D].青岛:中国海洋大学,2011.
[5] 叶竞,叶水勇,陈清萍,等.云终端技术研究与系统建设[J].电力信息与通信技术,2015(5):77-82.
[6] 孟凡飞,刘金海,吴宗泽.基于GStreamer的嵌入式流媒体播放器的设计[J].微计算机信息,2010(20):31-32.
Design of network cinema system based on video transcoding and IP multicast
Yang Xiong
(Fuzhou University Zhicheng College, Fuzhou 350002, China)
The cloud classroom program is composed of “server + cloud terminal + switch + cloud classroom management platform”,the use of advanced cloud computing and virtualization technology to build cloud classroom software and hardware integration platform,not only to meet the teaching requirements of a variety of teaching software, but also to meet the smooth playback of high-de fi nition video teaching requirements. One of the “Internet Cinema” is that teachers can use VLC to play media fi les on the teacher’s machine, and students can watch the video in real time in real time without having to download video fi les on the cloud terminal. In this paper, we use VLC’s real-time video transcoding and multicasting capabilities, combined with GStreamer streaming media playback framework of cloud terminal Linux system to build a network theater system that not only supports smooth playback of 720P HD video but also unlimited video source format expand the cloud classroom program scenarios.
cloud classrooms; network cinema; VLC; video transcoding; IP multicast
杨雄(1986— ),男,福建莆田人,高级工程师,硕士;研究方向:云计算,嵌入式应用。