华为云云耀云服务器L实例评测|将rtmp延迟降低到500ms以内-srs流媒体服务器测试(rtmp、http-flv、webrtc)

这篇具有很好参考价值的文章主要介绍了华为云云耀云服务器L实例评测|将rtmp延迟降低到500ms以内-srs流媒体服务器测试(rtmp、http-flv、webrtc)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

最近华为云提供华为云-云耀云服务器出了一项 征文活动,可以免费试用。于是本人也迫不及待的白嫖体验一下华为云云耀云服务器L实例,该实例配置如下图,系统版本为srs延迟优化,流媒体服务器,服务器,http,webrtc,gstreamer
srs延迟优化,流媒体服务器,服务器,http,webrtc,gstreamer

本次测试方向是使用SRS开源服务。SRS是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181。srs延迟优化,流媒体服务器,服务器,http,webrtc,gstreamer
本次测试RTMP和WebRTC相关功能。


一、下载配置SRS

下载最新版本的SRS

git https://gitee.com/ossrs/srs.git

这里是srs官网文档,跟着文档介绍可以轻松完成配置编译使用。srs作为开源项目有很多教程以及中文文档,对于初学者来说是容易上手的。

由于流媒体服务器使用时需要tcp和udp一些网络端口,在运行srs服务之前还需要配置华为云服务器的相关网络端口,华为云服务器默认是关闭的,建议先关掉服务器的防火墙再使用。先进入控制台-安全组里面。
srs延迟优化,流媒体服务器,服务器,http,webrtc,gstreamer
然后再入向规则里面将一些默认的流媒体端口打开,当然也可以自己选择使用哪些端口。srs延迟优化,流媒体服务器,服务器,http,webrtc,gstreamer

二、推流测试

官方文档里面给的ffmpeg命令推流使用的,这里使用gstreamer命令推流。
首先将云服务器上的srs跑起来。

完成配置后首先进入srs目录

root@xxx:~# cd srs/trunk/

然后选择rtc相关的配置文件启动服务

root@xxx:~/srs/trunk# ./objs/srs -c conf/rtc2rtmp.conf 

然后再本地推流,这里推流源使用的是分辨率为1472*720帧率为30的MP4文件。
srs延迟优化,流媒体服务器,服务器,http,webrtc,gstreamer
在推流的同时本地也播放文件,视频为一个计时器的录屏。这样在拉流时可以粗略的得出 延时情况。这里使用的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,webrtc,gstreamer

三、接下来使用SRS官方提供的网页播放器拉流

SRS也提供了拉流播放工具,访问网页可以进入

http://服务器公网ip:8080/players/srs_player.html

1. srs播放器http-flv

这里注意不要使用服务器的局域网ip,在系统中用命令获得的局域网ip。网页界面如下
srs延迟优化,流媒体服务器,服务器,http,webrtc,gstreamer
点击播放视频可以对比一下播放画面srs延迟优化,流媒体服务器,服务器,http,webrtc,gstreamer

可以看出srs的http-flv网页端播放延迟还是比较低的。

2. webrtc拉流播放

再测试一下rtc拉流播放
srs延迟优化,流媒体服务器,服务器,http,webrtc,gstreamer
可以看出webrtc的延迟更低,大概就一帧左右的差距不过音频播放是异常的。应该是srs官方出的webrtc拉流只考虑视频传输的实时性。

3. gst和ffmpeg播放工具拉流

不妨在对比ffmpeg和gstreamer播放工具拉流

ffplay rtmp://服务器公网ip/live/livestream
gst-play-1.0 rtmp://服务器公网ip/live/livestream

srs延迟优化,流媒体服务器,服务器,http,webrtc,gstreamer
由于ffmpeg的ffplay和gstreamer的gst-play-1.0播放工具在实时性拉流方面优化度不及网页端。。如果是自己使用gst和ffmpeg做实时拉流播放器时这里还是有很大优化空间的。

4. gstreamer设计管道拉流,可将rtmp延迟降低到500ms以内

首先推流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

srs延迟优化,流媒体服务器,服务器,http,webrtc,gstreamer
最终对比桌面浏览器显示的计时器与拉流播放窗口Direct3D11 renderer对比。时差在400多ms,500ms以内。500ms以内的rtmp直播目标实现。

四、华为云耀云服务器L实例体验感受

经过粗略测试来看,使用http-flv延迟在一秒以内,可以满足大部分直播场景的需求了。webrtc可以做到更低的延迟,对于音视频会议来说是一个很好的方案,可以直接将网页作为客户端。srs还支持众多协议这里就不一一测试了。当然开源的流媒体服务器也还有,比如zlmediakit。感谢这些开源创造者们的付出。

同时使用华为云耀云服务器L实例体验感还是不错的,虽然配置只是2g内存以及3M带宽,但是部署一个轻量级流媒体服务还是可以的。同时遇到的一些问题申请工单,华为工程师也很负责的耐心解决。喜欢白嫖的同学们可要抓紧时间了。文章来源地址https://www.toymoban.com/news/detail-851084.html

到了这里,关于华为云云耀云服务器L实例评测|将rtmp延迟降低到500ms以内-srs流媒体服务器测试(rtmp、http-flv、webrtc)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包