Windows Server 2019 流媒体服务器的配置与管理(使用FFmpeg推流到EasyDarwin中再通过VLC观看)
作者:NOWSHUT
1. 流媒体的基本概念
1.1 流媒体的定义
流媒体,streaming media,又叫流式媒体,它是一种多媒体表现形式。当供应商将媒体交付至互联网后,数据包分段技术将媒体数据压缩,以流的形式在网络中分段传送,当终端用户想要观看时,通过流媒体客户端对数据流进行解压,媒体会向供应商交付前一样显示出来。即实时播放。
(1)传统媒体与流媒体对比
传统方式观看视频文件的过程:视频文件上传到服务器后,用户通过客户端软件将视频全部下载好后,才能观看视频。
流媒体方式:视频文件上传到服务器后,当用户使用客户端软件请求访问(观看)时,数据包通过特殊的压缩方式,将视频文件分成一个个小的数据包,由流媒体服务器向客户端连续的、实时的传送到客户端中,这样用户可以一边观看一边下载,不需要等待视频文件全部下载完后才能观看。
(2)术语解释 推流 指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程。【推流】对网络要求比较高,如果网络不稳定,直播效果就会很差,观众观看直播时就会发生卡顿等现象,观看体验很是糟糕。 拉流 指服务器已有直播内容,用指定地址进行拉取的过程。直播节目内容以流的形式在网络中进行传输。所谓拉流即从云端将直播流拉取到本地。在终端实现直播的播放。 两者区别 推流是把数据推送到服务器的过程,而拉流是从服务器中直播的内容用指定的地址去拉取。
1.2 流媒体的传输方式
包括顺序流式传输和实时流式传输。
(1)顺序流式传输
实时传送,适合现场广播,支持随机访问,用户可快进或后退观看后面或前面的内容。前提条件是保证媒体信号带宽与网络带宽匹配,而且该种传输方式必须需要专用实时流协议
(2)实时流式传输
顺序下载,在给定时刻,用户只能观看已下载的部分,不能跳到还未下载的部分,这种一般比较适合高质量的短片段,如片头、片尾和广告。
1.3 流媒体的工作原理
流式传输一般采用HTTP/TCP来传输控制信息,RTP(实时传输协议)和UDP(用户数据包协议)来传输实时数据。
Q:为什么传输实时数据使用UDP而不是TCP?
A:TCP是可靠的传输协议,传输需要经过三次握手,通信双方都需要确认无误后才能开始传输数据,同时TCP开销很大。而UDP则是不可靠的传输协议,通信双方传输数据时无需经过三次握手验证,发送方只需将数据流发送到接收方即可,无需等待接收方的数据响应报文。例如QQ或者微信等一些SNS通信软件的数据传输均采用UDP,用户只需将信息发送给对方即可。
① 用户选择流媒体服务后,Web浏览器域Web服务器间使用HTTP/TCP交换控制信息,将需要传输的实时数据从原始数据库中检索出来。
② Web浏览器启动流媒体播放器,使用HTTP从Web服务器检索的相关参数(包括目录信息,视频的编码类型和服务器地址等信息)对流媒体播放器进行初始化。
③ 流媒体播放器与流媒体服务器运行实时流协议,交换控制信息,实时流协议提供执行播放,快进、快倒,暂停和录制等功能。
④ 流媒体服务器通过RTP/UDP协议将视频流数据传输到播放器,一旦数据流抵达客户端,客户端即可播放视频。
1.4 流媒体的播放形式
1)单播方式
一台服务器传送的数据包只能传递给客户机,采用点到点(P2P)。
(2)组播方式
允许路由器将数据包复制到多个通道,一对多。
(3)点播方式
客户端主动发起与服务器连接,允许用户控制媒体流的播放,可以对网络视频进行开始、停止、后退、快进或暂停等操作。
(4)广播方式
数据包复制发送到网络上所有用户,用户被动接受流不管用户是否需要。
1.5 实验使用软件介绍
(1)EasyDarwin
EasyDarwin 是一款开源的流媒体服务器软件。
EasyDarwin 开源流媒体服务器,是高性能开源RTSP流媒体服务器,基于go语言研发,维护和优化:RTSP推模式转发、RTSP拉模式转发、录像、检索、回放、关键帧缓存、秒开画面、RESTful接口、WEB后台管理、分布式负载均衡等功能。
官方网址:EasyDarwin
本次实验中,以EasyDarwin作为流媒体服务器。
(2)FFmpeg
ffmpeg是完整的跨平台解决方案,用于记录,转换和流传输音频和视频。
网址:FFmpeg
本次实验中,使用ffmpeg将视频推流到流媒体服务器EasyDarwin中 (3)VLC media player
VLC是一个免费的开源跨平台多媒体播放器和框架,可播放大多数多媒体文件以及DVD,音频CD,VCD和各种流协议。
2. 网络拓扑及说明
流媒体服务器:安装EasyDarwin流媒体服务及ffmpeg推流工具。
IP地址:192.168.82.228
PC2:安装VLC及OBS。
具体过程:流媒体服务器中存在视频库,在流媒体服务器中使用ffmpeg将视频转换为流,然后转发(推流)到EasyDarwin服务中,在PC2上使用VLC或OBS对流媒体服务器中的视频进行拉流,达到观看视频的效果。
3. 流媒体服务的安装及配置
3.1 安装和配置EasyDarwin
(1)下载EasyDarwin
从Github中下载EasyDarwin的Windows端安装包,打开EasyDarwin安装文件夹,文件夹中包括下面几个文件和文件夹:
logs文件夹:存放EasyDarwin服务日志信息www文件夹:EasyDarwin的Web UI源码easydarwin.db:存放EasyDarwin的数据EasyDarwin.exe:EasyDarwin的执行程序easydarwin.ini:EasyDarwin配置文件ServiceInstall-EasyDarwin.exe:EasyDarwin服务安装程序ServiceUninstall-EasyDarwin.exe:EasyDarwin服务卸载程序
(2)设置EasyDarwin配置文件
点击【easydarwin.ini】,修改以下选项:
[http] port=80 default_username=admin default_password=admin [rtsp] port=554
[http]下的【port】指EasyDarwin的Web控制UI的端口号,默认为10008,根据实际需求修改,这里改成80。
【default_username】和【default_password】是Web控制UI的登录用户名和密码,默认均为:admin,根据实际需求修改。
[rtsp]下的【port】指RTSP协议使用的端口号,默认为554,根据实际需求修改。
(3)启动EasyDarwin服务
点击ServiceInstall-EasyDarwin.exe,安装EasyDarwin服务,出现命令提示符,加载完成后按任意键即可,这时EasyDarwin服务已经安装在【服务】中并在后台运行。
(4)查看Web控制台UI
打开浏览器,在地址栏输入:http://192.168.82.228
,使用用户名和密码登录。
3.2 安装FFmpeg
(1)下载FFmpeg
从官网下载:FFmpeg Builds,将文件夹放置相应的目录中(为设置环境变量做准备),打开ffmpeg文件夹,点击bin目录,看到三个应用程序,其中ffmpeg是用来推流用的。
ffmpeg.exe
ffplay.exe
ffprobe.exe
ffmpeg.zeranoe.com will close on Sep 18, 2020, and all builds will be removed. If you’re using Zeranoe FFmpeg Builds in your product, please ensure that you have a hosting strategy in place by the 18th. Thank you to everyone who supported the project along the way!
(2)设置环境变量
打开【控制面板】——>【系统和安全】——>【系统】——>【高级系统设置】——>【环境变量】——>【系统变量】——>【Path】——>【新建】,输入(1)中bin文件夹的完整物理目录即可,最后点击【确定】。
3.3 使用ffmpeg推流
准备工作:在C盘中创建一个名为【Videos】的文件夹,将准备好的视频1.mp4和2.mp4移动到该目录下。
(1)推流
打开命令提示符,输入:
ffmpeg -re -i C:\Videos\1.mp4 -rtsp_transport tcp -vcodec h264 -f rtsp rtsp://192.168.82.228/test # 或者 ffmpeg -re -i C:\Videos\2.mp4 -rtsp_transport udp -vcodec h264 -f rtsp rtsp://192.168.82.228/test2
(2)配置防火墙
配置一条名为VLC 554的入站策略,选择特定端口554,TCP连接,允许任何地址连接。
(3)查看推流信息
打开浏览器,在地址栏输入:http://192.168.82.228
,点击【推流列表】,可以看到,有一个视频正在被转发(推流)到EasyDarwin服务中。
3.4 使用VLC拉流
(1)在PC2中安装VLC media player,打开(此步骤较简单,故省略)。
(2)点击【媒体】——>【打开网络串流】.
在URL栏中输入:
rtsp://192.168.82.228/test2
最后点击播放。
该地址是EasyDarwin的Web控制UI的推流列表中的播放地址。
(3)VLC会自动从流媒体服务器中拉取数据流,经过VLC转化为视频播放。(拉流)
返回流媒体服务器,打开EasyDarwin的Web控制UI,在拉流列表中看到,有客户端进行视频观看,传输方式是UDP,下载流量为49.7MB。
至此,一套完整的流媒体服务搭建完成。流媒体服务的搭建需要良好的网络带宽,因此在测试本次实验的时候,尽量使用虚拟机内网流量,这样可以不影响物理机中的WAN流量。
4. 参考文献
到此这篇关于Windows Server 2019 流媒体服务器的配置与管理(使用FFmpeg推流到EasyDarwin中再通过VLC观看)的文章就介绍到这了,更多相关win2019 流媒体服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!