魏尔啸
(河南省图书馆,河南 郑州 450052)
流媒体概念随技术变革经历多次变迁,形成了目前主流的几种技术标准,是云服务的应用模式之一。流媒体(Streaming Media)指将一连串的媒体数据压缩后经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,该技术使数据包得以像流水一样被发送,如果不使用此技术就必须在使用前下载整个媒体文件。
在网络上传输的A/V文件一般体积较大,需要的存储容量也较大,等待播放时间过长,不适合完整下载,而在流式传输时,声音、影像的媒体信息是由服务器向用户终端进行的连续、实时传送,用户不必等到整个文件全部下载完毕,只需经过缓存延时即可边观看边下载。其基本流程是服务器负责管理、存储、转码、分发编码器传上来的流媒体数据,编码器由一台终端设备负责采集、压缩、推流给服务器,最终在客户端拉流、解码所接收的数据信息。
主流的流媒体传输协议包括:RSVP(资源预留协议)、RTP(实时传输协议)、RTCP(实时传输控制协议)、MMS(微软流媒体服务协议)、RTSP(实时流传输协议)、MIME(多目因特网电子邮件扩展协议)、RTMP(RTMPE/RTMPS/RTMPT,Adobe实时消息协议簇)、RTMFP(Adobe实施消息流协议,P2P协议)、HLS(HTTP Live Streaming,Apple的动态码率自适应协议)、DASH(Dynamic Adaptive Streaming over HTTP,自适应流媒体传输协议)[1]。
表1是几种协议的效能对比,图1为MPEG-DASH协议系统架构示意图。
表1 常见流媒体协议支持情况
图1 MPEG-DASH协议切片工作流程
不同流媒体协议的数据压缩格式不尽相同,传输能力也各有优劣,适用于不同的应用场景。一台服务器完成点播与直播往往需要多种协议并存,以适应多种终端设备。
随着互联网的高速发展,网络已成为人们生产生活的基础构成。流媒体技术建立在网络通路的基础上,应用广泛。从早期的影视点播,发展为包含在线会议、在线教学、赛事直播、视频监控等版块在内的金融、工业、房地产、农业、医疗、文化等多个领域,流媒体已经发展成为一项跨领域融合技术。
在移动互联网时代,图书馆场馆的网络应用逐渐成为空间服务的主要场景,从行为管理后台对当日网络应用的排名统计,可以看到流媒体(点播/直播)在场馆网络环境内的使用情况,包括网络下载(本地使用资源)和网络视频(在线使用资源)。网络下载占用较高的带宽,而流媒体拥有更多应用形式并占据更大的数量基数,其中体现的用户应用特点是网络提速且终端形态多样,加上本地存储量有限,用户在非必须情况下更愿意使用远端在线服务。
图书馆的传统资源是纸质文献,馆藏多以纸质与电子资源共存的模式存在,服务形式包括纸质文献的借阅、电子文献加权下载或在线阅读、时政与文献解读、专家讲座培训、名家作品展览、提供学习休闲空间等,基本可概括为两个场景:围绕书籍利用的场景和围绕空间利用的场景,也可以实现两个场景的交叉。例如,网上商城和商业实体具有不同的消费体验,商业实体属于商品和空间交叉利用的场景,是体验式消费,消费的是商品和购买商品的过程体验。网上商城的消费目的明确,消费的主体就是商品的性价比。线下体验又可以被分割为社区空间,如果将分块的社区通过区块链技术链接起来,其区位优势就更加明显[2]。对比商业场景模式,图书馆也有两项基础资源:书籍和空间,其中空间包含主体和社区两部分。很多图书馆在建设城市书屋和街区自助借书机,这就是资源利用的区块化表现。在图书馆楼宇内,除了对书籍资源的挑选和借阅,在主体空间内使用资源的体验感也是图书馆的一种重要资源。
图书馆是不以营利为目的的公益性机构,侧重于资源利用的多样化和利用率的提升。书籍资源是图书馆的主体资源,空间资源是书籍资源的附加值,是书籍资源利用的延伸。空间的概念既可以是实体的,也可以是虚拟的,实体空间通过网络在任意地点进行空间复制,从而构建虚拟空间,建立与实体相同的空间体验感。流媒体是构建虚拟空间最简便的一种技术手段,通过拓展无形空间延伸主体资源的利用价值,通过网络实现对主体资源利用过程的体验,其实质是资源线上线下模式的变相融合。
流媒体应用在不同场景下的分类大致有三种:一是以广电新媒体网台、IPTV直播、OTT直播为代表的电视直播业务,特点是延时容忍度高,但稳定性、清晰度要求高。二是以赛事直播、移动直播、教育直播等为代表的互动直播,特点是延时要求高。三是以视频会议为代表的音视频通信业务,其特点是延时要求极高,音频质量要求高。流媒体在不同的应用场景下,对服务器的配置参数和硬件标准有较明显的差异性[3]。
公共图书馆目前对空间的利用基本上有以下几种:名家系列授课讲座,机构培训考试,会议承接,手工艺、绘画、书法、文献宣传展览,节假日民俗非遗技艺展示互动,青少年亲子活动,道德、法律、安全、健康的宣讲推广,优秀影视作品展映,MR场景、3D打印、全息投影、智能助手等科技产品体验。
综上,公共图书馆流媒体应用可归结为三种场景:课堂场景、展览场景、互动场景,三种场景相互交叉。实体空间和虚拟空间都是通过过程体验完成信息获取,不同之处在于用户的体验感,实体空间是沉浸式的,但采用流媒体实现当前场景的空间拓展,难以模拟身临其境的感官体验。这是对VR/AR技术的折中方案,特点在信息对等和即时交流。现阶段,流媒体技术只是技术方案的主要部分,还需要结合其他辅助技术手段才能更真实地模拟实体场景。针对之前总结的三种场景和交叉境况,公共图书馆可从以下几个方面进行场景策划。
在线教育是网络最常见的空间复用表现形式,而课堂教学是图书馆教育职能的最直接体现。图书馆通过流媒体与在线教育相结合,就是时下流行的“网络公开课”“慕课”版块,“网络公开课”的范围更广,“慕课”主要指系列性教学。
课堂的日常教学内容以通俗科普为主,扩大教学受众面,吸引平台流量,在特定用户群内进行专向性培训,提高培训质量。教学对象的主要用户组成是社会大众,在内容上降低进入门槛,利用现场直播、在线问答的形式进行网络传递,让受众群体在户外可随时参与和退出,减少约束感。
将好的收藏作品定期向公众展示,是公共文化服务机构弘扬中华优秀传统文化、开阔民众视野的一种教育方式。博物馆的展品资源丰富、专业性强,但博物馆强调展品的历史价值、工艺价值和思想的单向教授。图书馆展览的特点是强调受众人群的多样性和在参与互动中发散思维、共享创意。
不同于虚拟展览,展览直播更多是一种体验感的传达。结合流媒体技术的聚合效应,公共图书馆可组织在线沙龙,让更多志同道合的人群在同一时间段内随时随地都能参与,并由现场主持引导,多人同步观赏,烘托交流氛围,营造亲临现场的真实感,从而达到虚拟空间对实体空间情感复制的基本需求。
自然科学类书籍的阅读需要较强的专业知识基础,经常让不少读者望而却步。视频直播的流媒体讲解形式可以在短时间内拉近读者与科学知识之间的距离,把图书馆作为连通二者的桥梁,一方面把书籍知识点提炼总结;另一方面将生活案例融入讲授视频,并附以艺术化的文学表达,提升读者的阅读积极性。
公共图书馆拥有丰富的书籍资源,但有很多好书读者想读却读不懂,还有些读者的自家藏书缺少交流推介的渠道。公共图书馆建设在线流媒体平台在线同读一本好书,既能推动多人阅读,增强学习共情,又能为普通读者创造发声机会,借助平台建立信誉口碑,还能通过图书馆资源挖掘逐渐发展为用户创造资源,丰富平台资源储备量。公共图书馆通过流媒体面对面即时通信的便利,把直播的权利交给用户,让有能力的人领头解读好书,创新流量渠道,带动全民阅读。
公共图书馆以B/S私有云平台为建设目标,推送移动终端服务,中小型平台的语言实现可以选择Node.js和Python,搭配MySQL数据库,结合MongoDB辅助存储。后期业务量增大后,公共图书馆可在网络前端做链路负载和流控,应用平台做服务器虚拟化加FC SAN存储阵列。除了在自平台搭建私有云,公共图书馆也可以购买阿里云等商业云虚拟主机和CDN加速节点;购买CA证书做微信小程序流推,同时加密信息流,提高域名辨识度。在线视频实时广播,受众面广,网络流量高,容易遭遇DDOS、0Day等攻击,一旦成为“肉鸡”或内容被篡改,社会负面影响较大,因此公共图书馆有必要加装安全云防护,定期做漏扫下发。由于业务系统接口涉及读者个人敏感信息,公共图书馆的流媒体平台必须符合国家要求的等保2.0标准,建立近线、在线、离线三线灾备模式。
平台整体结构可采用MVC框架,协议主体为HLS或DASH,做移动端拉流,推流协议为RTMP。移动端开发是混合型应用,以本地框架封装WEB应用。机构用户做成微信小程序的在线视频服务,增加流量入口,便于资源分享推广。WEB服务器扩展模块使用较多的是Nginx,也可以是Tomcat加模。IBM的Websphere在我国应用得不多,但其技术支持完善,更适合做大型应用,稳定性比较高。普通网站项目做流媒体应用,需要在WEB服务器添加相应模块支持,或结合流媒体服务器整体打包。常见的流媒体服务器包括开源的Red5和Adobe付费的FMS(Adobe Flash Media Server)。FMS部署简单,多见于微软应用体系,具体实施应当根据平台需求选择。服务器视频流压缩编码使用FFmpeg开发工具,命令丰富且适用于程序内嵌,是我国多数视频加工软件的版本内核。前端播放器选择较多,兼容性较好的是JW Player和VLC media player,可编程兼容Flash和H5。推端OBS推流一般设置包括URL和串码流,推流目录由WEB服务器配置。HLS和DASH在移动端通过HTTP访问目录下切片文件索引拉流。PC端则访问RTMP路径观看直播。OBS中的“串码流”为虚拟目录,两端需协定一致。
图2 流媒体服务端基本结构
流媒体的完整播放流程涉及采集、转换、推流、拉流等步骤,包括服务端转码切片,中台下发和终端页面兼容适配。服务端的主要工作集中在数据库结构开发,定义功能分配。小型应用的主要开发流程包括内容布局和端口转发。图2为有代表性的流媒体服务流程拓扑图。
在采用服务端集成开发的情况下,用户接口是平台开发初期的重点设计对象,直接影响用户观看效果的适配能力。图3、图4、图5是流媒体应用平台的部分思维导图。
图3 点播与直播总览界面
笔者通过以上导向图构建流媒体项目层级结构,实际的项目发布还需要进行后续数据库底层设计工作。数据表基本分为管理、用户、资源三大项,也可以合并管理和使用结构,将人员表分层。下页表2展示了部分数据库字段。
图4 视频播放界面
图5 资源管理界面
表2 数据库表结构
流媒体应用开发有许多成熟的技术框架适用于不同的行业领域,技术开发门槛较低,实现效果快,市场上还有很多集成完善的流媒体技术产品,可以直接做技术外包,因此流媒体平台最重要的还是资源。合理的资源布局、更好更快的资源产出以及人性化、个性化的资源设计,是流媒体平台开发的运营重点。流媒体的技术实现方式多样,无论是自行建设还是产品购买,都可以实现以技术服务带动资源利用,终极目的是提升网络流量,最大限度地提高图书馆数字资源的利用率。
本研究从开发者角度出发,根据图书馆的实际应用需求,综合阐述了现有主流的流媒体技术架构和相关技术延伸。产品的兼容性需要在后期的测试运行中不断调试磨合,由图书馆的资源储备和用户体验决定产品的迭代方向,并融入新理念和新技术,持续优化流媒体平台的技术服务能力。