赞
踩
最近华为云提供华为云-云耀云服务器出了一项 征文活动,可以免费试用。于是本人也迫不及待的白嫖体验一下华为云云耀云服务器L实例,该实例配置如下图,系统版本为
本次测试方向是使用SRS开源服务。SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181。
本次测试RTMP和WebRTC相关功能。
下载最新版本的SRS
git https://gitee.com/ossrs/srs.git
这里是srs官网文档,跟着文档介绍可以轻松完成配置编译使用。srs作为开源项目有很多教程以及中文文档,对于初学者来说是容易上手的。
由于流媒体服务器使用时需要tcp和udp一些网络端口,在运行srs服务之前还需要配置华为云服务器的相关网络端口,华为云服务器默认是关闭的,建议先关掉服务器的防火墙再使用。先进入控制台-安全组里面。
然后再入向规则里面将一些默认的流媒体端口打开,当然也可以自己选择使用哪些端口。
官方文档里面给的ffmpeg命令推流使用的,这里使用gstreamer命令推流。
首先将云服务器上的srs跑起来。
完成配置后首先进入srs目录
root@xxx:~# cd srs/trunk/
然后选择rtc相关的配置文件启动服务
root@xxx:~/srs/trunk# ./objs/srs -c conf/rtc2rtmp.conf
然后再本地推流,这里推流源使用的是分辨率为1472*720帧率为30的MP4文件。
在推流的同时本地也播放文件,视频为一个计时器的录屏。这样在拉流时可以粗略的得出 延时情况。这里使用的win11,d3d11h264dec和d3d11videosink都是win端使用的相关插件。
gst-launch-1.0 flvmux name=mux1 ! rtmpsink location= rtmp://124.71.37.43/live/livestream filesrc location=1472_720_30.mp4 ! qtdemux name=dmux dmux.video_0 ! tee name=v ! queue ! h264parse ! d3d11h264dec ! d3d11videosink v. ! h264parse ! queue ! mux1. dmux.audio_0 ! tee name=a ! aacparse ! queue ! mux1.
命令运行成功后马上弹出本地视频播放界面。
SRS也提供了拉流播放工具,访问网页可以进入
http://服务器公网ip:8080/players/srs_player.html
这里注意不要使用服务器的局域网ip,在系统中用命令获得的局域网ip。网页界面如下
点击播放视频可以对比一下播放画面
可以看出srs的http-flv网页端播放延迟还是比较低的。
再测试一下rtc拉流播放
可以看出webrtc的延迟更低,大概就一帧左右的差距不过音频播放是异常的。应该是srs官方出的webrtc拉流只考虑视频传输的实时性。
不妨在对比ffmpeg和gstreamer播放工具拉流
ffplay rtmp://服务器公网ip/live/livestream
gst-play-1.0 rtmp://服务器公网ip/live/livestream
由于ffmpeg的ffplay和gstreamer的gst-play-1.0播放工具在实时性拉流方面优化度不及网页端。。如果是自己使用gst和ffmpeg做实时拉流播放器时这里还是有很大优化空间的。
首先推流win桌面画面,这里使用Windows环境使用英伟达显卡选择编码器为nvh264enc。推流设置为1080p@30,码率为2mbps。为了降低延迟选择无B帧。
拉流命令使用如下
gst-launch-1.0 rtmpsrc location=rtmp://ipxxx/live/livestream ! flvdemux name=d ! queue ! h264parse ! d3d11h264dec ! d3d11videosink d. ! queue ! aacparse ! avdec_aac ! audioconvert ! audioresample ! autoaudiosink -v
最终对比桌面浏览器显示的计时器与拉流播放窗口Direct3D11 renderer对比。时差在400多ms,500ms以内。500ms以内的rtmp直播目标实现。
经过粗略测试来看,使用http-flv延迟在一秒以内,可以满足大部分直播场景的需求了。webrtc可以做到更低的延迟,对于音视频会议来说是一个很好的方案,可以直接将网页作为客户端。srs还支持众多协议这里就不一一测试了。当然开源的流媒体服务器也还有,比如zlmediakit。感谢这些开源创造者们的付出。
同时使用华为云耀云服务器L实例体验感还是不错的,虽然配置只是2g内存以及3M带宽,但是部署一个轻量级流媒体服务还是可以的。同时遇到的一些问题申请工单,华为工程师也很负责的耐心解决。喜欢白嫖的同学们可要抓紧时间了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。