流媒体直播信号监测技术的设计与实现

2021-09-08 00:49鲁海辉
卫星电视与宽带多媒体 2021年14期
关键词:流媒体直播监测

鲁海辉

【摘要】随着网络WEB2.0与媒体融合技术的发展,各级广播电视台都推出了自己的流媒体直播。直播安全是广电的基本要求,借用短信或语音电话等通讯技术提升流媒体直播信号的监测水平,已成为广播电视新媒体行业常用的技术手段,本文将介绍如何利用程序代码实现流媒体直播、信号中断、报警、故障处理的全过程。为地市级广电、特别是县级融媒体中心流媒体直播的安全保障提供最快速度、最便捷的技术保障手段。

【关键词】流媒体;直播;监测

1. 流媒体概念:

所谓流媒体是指采用流式传输的方式在Internet播放的媒体格式。流媒体又叫流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上。用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。流媒体(Streaming Media)的出现极大地方便了人们的工作和生活。流媒体在视频点播、网络电台、网络视频等方面也有着广泛的应用。于是,网络电视台开始出现在互联网上,从早期的视频点播开始,慢慢随着流媒体的普及,各大电视台纷纷在网络上推出了频道直播,从早期的Realpaly和ASF(高级串流格式)的直播,到现在的RTMP协议为主流的直播,都是随着宽带的发展而发展,清晰度越来越高,从当初的4:3的画面,到现在的16:9,从当初电脑端才能观看流媒体直播,到现在的移动端的直播,流媒体技术直接影响了现在的网络视频生态。

2. 流媒体技术

流媒体技术从传输形式上可以分为:顺序流式传输和实时流式传输。

顺序式传输是介于下载本地播放与实时流媒体之间的一种播放方式,下载本地播放必须全部将文件下载完成后才能播放,而顺序式传输不必等到全部下载完成后再播放,也就是说用户在下载文件的同时用户可以观看,但是用户只能观看已下载的那部分,而不能要求跳到还未下载的部分。因此,这种方式也被称之为“伪流媒体传输”。常应用于视频网站的点播。

实时流式传输才是真正意义上的流媒体传输。用户可以一边接收数据包一边播放,数据总是实时传送,可以实现实况转播(就像如今的视频直播一样)。实时流媒体传输必须保证数据包的传输速度大于文件的播放速度,否则用户看到的视屏就会暂停。主要应用于网络视频直播。

为了弥补网络环境的影响,保障数据包的顺序传输,使流媒体数据连续输出,流媒体传输采用了缓存系统。通常高速缓存所需容量并不大,因为高速缓存使用环形链表结构来存储数据:通过丢弃已经播放的内容,流可以重新利用空出的高速缓存空间来缓存后续尚未播放的内容。

3. 直播中使用的流媒体协议

RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。RTMP是目前主流的流媒体传输协议,广泛用于直播领域,可以说市面上绝大多数的直播产品都采用了这个协议。

HLS,HTTP Live Streaming(HTTP直播流技术),Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。

4. 流媒体信号报警(采集、处理、程序代码)

FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、FLV等40多种编码,AVI、MPEG、OGG、Matroska、ASF等90多种解码.TCPMP, VLC,MPlayer等开源播放器都用到了FFmpeg。

FFmpeg可以将视音频文件的信息显示到控制台或者打印输出到一个文本文件,FFmpeg的Bin包里面还带了一个强大的工具ffprobe,这个工具可以获取视音频文件里的详细信息,并将信息输出为JSON格式。我们可以通过解析ffprobe输出的JSON来获得文件的格式信息。

獲得了JSON数据后,我们就可以对直播流的音视频进行参数化,用程序来调用获取到的数据,进行判断,我们抽样10-30秒的流媒体数据,具体的流程如图2所示:

下面,我们开始对获得到的流媒体数据进行判断,由程序完成判断后,进行调用短信或语音报警接口,绑定对应的工作人员,做到有问题后,立即解决,尽量减少直播断流造成的直播停播事故。

通过运行这段程序后,我们可以立即获取实时流媒体的指定的参数(图4所示),我们再把RTMP推流中断,我们再次获取流媒体的参数(图4所示)通过这些参数,我们可以直观的看到现在视频流的状态。从而可以让程序进行判断,如果获取不到这些参数,我们就立即启动推送短信程序给技术人员,部分程序截取(如图5)。

通过以上的操作,我们就完成了流媒体信号的在线监测,可以实时发现故障进行短信报警,让技术人员第一时间处理故障。

5. 结语

2018年以来,我台已经承接各类大型的直播活动近百场,通过流媒体直播监测技术,未发生直播安全责任事故,节省了大量的人力成本,提高了直播快速反应能力,为媒体融合打下了坚实的基础。

参考文献:

[1]百度百科:流媒体技术

[2]CSDN:zhoubotong2012Java/PHP/C#等语言如何调用ffmpeg/ffprobe获取音视频文件的信息并输出为JSON格式

猜你喜欢
流媒体直播监测
气囊测压表在腹内压监测中的应用
基于 WSN 的隧道健康监测研究
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
流媒体传输加密技术研究
广播二次传播和可视化路径探析
基于JSP的流媒体播放的设计与实现
网络远程教学系统的设计
基于RTMFP协议的视频监控系统设计与实现
学习监测手环