韦中华
莒县广播电视台 山东 莒县 276500
摘要:随着数字化、信息化、网络化的发展,流媒体技术已经成功应用到生活的各个方面,同时给广播电视也带来前所未有的发展机遇。本文结合实际应用到的案例,就流媒体技术在新闻媒体中的深度融合与创新,分别从概念、原理、部署到应用等方面进行了阐述和解读。
关键词:流媒体 实时 直播 推流 拉流 编码
当前,依托着4G/5G传输网络,上至国家领导人的跨国“云外交”,下到普通百姓之间视频对话,流媒体技术已经非常成功的应用到我们生活中方方面面,包括在线教育、直播带货、视频会议、远程会诊等等。
对于新闻媒体来说,流媒体带来了机遇和挑战。流媒体技术为传统媒体在互联网上开辟更广阔的空间提供了可能。打破了传统媒体在传播渠道、传播面上的限制,媒体宣传报道发生变革性转变,用户收听收看节目也由原来被动接受,变成主动选择。
流媒体概念
流媒体(Streaming Media)技术是指将一连串的媒体数据(包括视频、音频、图片、文字和动画)压缩后,以流的方式在网络中分段传送,实现在网络上实时传输音视频,并提供播放收听收看的一种技术。
流媒体技术从传输形式上可以分为:顺序流式传输和实时流式传输。
顺序流式传输不必等到全部下载完成后再播放,用户在下载文件的同时就可以观看,但是只能观看已下载的那部分,而不能要求跳到还未下载的部分,常应用于视频网站的点播。
实时流式传输才是真正意义上的流媒体传输。用户可以一边接收数据包一边播放,数据总是实时传送,实时流媒体传输必须保证数据包的传输速度大于文件的播放速度,否则视频就会暂停。主要应用于网络视频直播。
流媒体系统组成
流媒体系统分为信号采集编码、数据网络推流、服务器存放控制、拉流直播点播。
1、采集编码:用于创建、捕捉和编辑多媒体数据,形成流媒体格式。采集信号,使用先进的H.264/AVC视频压缩算法和MPEG4 AAC音频压缩算法 ,编码成一路支持RTSP、RTMP协议的直播IP流媒体数据。采集的信号可以是外部设备提供的SDI、HDMI和VBS复合信号,也包括可叠加的图文、字幕或者本地音视频。 信号采集分为音频采集和视频采集。音频采集将环境中的模拟信号采集成PCM编码的原始数据,然后编码压缩成MP3等格式数据分发出去。音频采集参考的技术参数有采样率、位宽、声道数和音频帧。图像采集的图片结果组合成一组连续播放的动画,由YUV编码的原始数据,经过压缩成H.264等格式数据分发出去。参考技术参数有,图像传输格式、图像格式、传输通道、分辨率和采用频率等
2、数据推流:推流,指的是把采集阶段封包好的流媒体数据通过网络(局域网、互联网、4G或者5G网络)传输发送到指定流媒体服务器的过程。以上过程可以通过硬件设备或者软件来实现。硬件设备主要包括音视频编码器、高配置摄像头、航拍器等拍摄设备。软件主要是直播推流软件,目前有Adobe Flash Media Encoder 、Open Broadcaster Software、800Li Education Podcast、Vlc等直播软件。主要以软件推流为主,硬件设备也是植入了相应功能的软件和驱动程序,才具备推流功能。
3、流媒体服务器,整个流媒体系统中的核心部分,用于存放和控制流媒体的数据。目前,市场上有各种商业类型的云端流媒体服务器可以选用,也可以自主搭建使用。文章后面将介绍我台结合自身需要部署的流媒体服务平台。
4、数据拉流:供客户端浏览流媒体文件,以此来实现直播或者点播。通过流媒体配置数据,结合常用的传输协议,生成一段拉流地址,通过该地址可以在专业解码器拉流输出SDI和HDMI信号,或者通过PC端播放器、手机客户端浏览收看。同时也是一个解码还原的过程,解码方式有软件解码和硬件解码。软件解码常用FFMpeg多媒体库,利用CPU做视频的解码,而硬件解码 利用GPU或者专用处理器来对视频流进行解码。
流媒体技术在实施过程中用到几种网络传输协议,RTP、RTCP、RTSP、RTMP、MMS、HLS?等协议。作者本人实际工作需要,主要介绍一下用到比较多的RTSP、RTMP和HLS协议。
RTSP (Real-Time Stream Protocol)由Real Networks 和 Netscape共同提出的,基于文本的多媒体播放控制协议。RTSP定义流格式,流数据经由RTP传输;RTSP实时效果非常好,适合视频聊天,视频监控等方向,可应用在推流和拉流两端。
RTMP(Real Time Message Protocol) 由 Adobe 公司提出,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题,RTMP协议是应用层协议,是要靠底层可靠的传输层协议(通常是TCP)来保证信息传输的可靠性的,默认使用端口1935。优势在于低延迟,稳定性高,可应用在推流和拉流两端。。
HLS ( HTTP Live Streaming)苹果公司提出的流媒体协议,直接把流媒体切片成一段段,信息保存到m3u列表文件中,可以将不同速率的版本切成相应的片;播放器可以直接使用http协议请求流数据,可以在不同速率的版本间自由切换,实现无缝播放;省去使用其他协议的烦恼。只可应用在拉流端
流媒体系统案例分析
莒县融媒体中心根据自身需要搭建了流媒体系统,前期的主要用途是自办频道、频率的网上直播和节目点播。方案选择了目前最广泛应用的开源的Linux + Nginx + Rtmp + Hls技术。
前端采用RTMP协议的本地局域网推流模式,核心设备是部署了Linux系统服务器,安全防火墙、交换机及高带宽的双向网络专线。配备高清网络编码器、高清网络摄像头等多台推流设备,推流设备和核心服务器接入在同一交换机上使用局域网推流,确保推流的稳定性。
例如服务器配置IP地址为192.168.0.10,安装Nginx插件,并在Nginx.conf文件中创建Rtmp应用live,默认端口为1935,其他配置如下:
rtmp { #声明一个 RTMP 实例
server {
listen 1935; #添加一个监听端口以接收 RTMP 连接。
application live { #创建一个名为live的 RTMP 应用。
live on; #切换直播模式,即一对多广播。
hls on; #开启hls应用
hls_path temp/live; #设置HLS播放列表和片段目录
hls_fragment 1s; #设置HLS片段长度 1s
recorder all { #资源录像
record_path /tmp/rec; #录制文件存放路径
record_suffix .mp4; #录制文件格式
record_unique on; #打开追加当前的时间戳
record_append on; #切换文件追加模式
}
}
application vod { #点播资源
play E:/media/2021; #资源路径
}
}
}
在高清编码器中设置的Rtmp 上传节点为test,推流地址为rtmp://192.168.0.10:1935/live/test。Hls配置中, 拉流访问端口设置为8181,其他设置如下。
http {
server {
listen 8181; # http访问直播端口
location / {
root www;
}
location /stat { # 配置rtmp状态页
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl { #在根目录www下查看rtmp 状态
root www;
}
location /live {
types {
application/vnd.apple.mpegurl m3u8; #HTTP Content-Type 媒体类型
video/mp2t ts;
}
add_header Cache-Control no-cache; #不使用缓存配置
alias temp/live;
expires -1;
}
}
拉流端,使用公网IP和域名映射绑定到服务器地址上, 生成拉流访问地址http://域名:8181/live/test.m3u8, 可以在互联网中实现多端访问。注意,上述推拉流配置都要和推流设备上主流编码设置参数匹配。流媒体服务器中使用的Nginx功能非常强大,除了可以配置流媒体直播点播技术,还可以实现服务器正向和反向代理,及负载均衡等功能,是技术人员掌握服务器技术的必备工具之一。
结束语
莒县广播电视台充分利用流媒体技术,已经实现了自办频道频率,在PC端手机端等多端多平台节目直播;实现了浮来山千年银杏树金秋“慢直播”;实现了疫情防控期间,全县多场重大会议的视频直播。下一步将在莒国古城开城后,实现古城全貌“慢直播”,及大型活动的VR直播。
随着5G网络的全覆盖,依靠其高速率、大容量、低时延的特点,流媒体技术不仅在新闻媒体中会得到创新性发展,大有作为,必将应用到更多行业之中,必将更好地服务百姓生活,更大地支持经济社会发展。