• 华为云云耀云服务器L实例评测|华为云云耀云服务器docker部署srs,可使用HLS协议


    华为云云耀云服务器L实例评测|华为云云耀云服务器docker部署srs,可使用HLS协议

    什么是华为云云耀云L实例

    • 云耀云服务器L实例,面向初创企业和开发者打造的全新轻量应用云服务器。提供丰富严选的应用镜像,实现应用一键部署,助力客户便捷高效的在云端构建电商网站、Web应用、小程序、学习环境、各类开发测试等。

    开始接触华为云云耀云L实例

    • 获取华为云云耀云服务器L实例后第一步就是先去华为云上重置服务器密码
      在这里插入图片描述

    在这里插入图片描述

    • 重置完毕后用finalshell登陆华为云服务器,这里也可以用其他工具登陆比如xshell或者Putty都可以
      在这里插入图片描述

    • 登陆上去df -h查看硬盘确实是40g,我这里是装完了docker与srs,但可以看到硬盘总大小是正常的40g

    [root@hcss-ecs-496b ~]# df -h
    文件系统        容量  已用  可用 已用% 挂载点
    devtmpfs        909M     0  909M    0% /dev
    tmpfs           919M     0  919M    0% /dev/shm
    tmpfs           919M  8.6M  910M    1% /run
    tmpfs           919M     0  919M    0% /sys/fs/cgroup
    /dev/vda1        40G  3.0G   35G    8% /
    overlay          40G  3.0G   35G    8% /var/lib/docker/overlay2/614c90f78c3233668e229b261f6c9a383207ac7dc501f521b0d6a77b903b4e1d/merged
    tmpfs           184M     0  184M    0% /run/user/0
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 然后输入 systemctl status firewalld可以看到默认防火墙是关闭的,因此我们就不需要额外再去配置端口开放相关的配置
    [root@hcss-ecs-496b ~]# systemctl status firewalld
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
       Active: inactive (dead)
         Docs: man:firewalld(1)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    docker相关

    什么是docker

    • Docker 是一个开源的平台,它允许开发者和系统管理员在容器中构建、打包和运行任何应用程序。容器类似于虚拟机,但比传统的虚拟机更为轻量,它们共享同一个操作系统内核,而不是每一个都有自己的操作系统

    docker环境的安装

    • 然后进行docker容器的安装,安装最新版本的docker
    ###装必须的一些工具
    yum install -y yum-utils device-mapper-persistent-data lvm2
    ###配置yum的源地址
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    ###查看docker有哪些版本
    yum list docker-ce --showduplicates | sort -r
    ###默认安装最新版本的docker
    yum install -y docker-ce
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 配置启动docker与docker的开机自启
    [root@hcss-ecs-496b ~]# systemctl start docker
    [root@hcss-ecs-496b ~]# systemctl enable docker
    
    • 1
    • 2
    • 查看安装的docker版本
    [root@hcss-ecs-496b ~]# docker -v
    Docker version 24.0.6, build ed223bc
    
    • 1
    • 2

    srs相关

    什么是srs

    • SRS的全称为Simple Realtime Server,是一个开源的(MIT协议)简单高效的实时视频服务器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH和GB28181等协议。 SRS媒体服务器和FFmpeg、OBS、VLC、 WebRTC等客户端配合使用,提供流的接收和分发的能力,是一个典型的发布 (推流)和订阅(播放)服务器模型。

    什么是HLS

    • HLS (HTTP Live Streaming)是Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u8的索引文件,TS媒体分片文件和key加密串文件。
    • HLS对比webrtc,延迟比较大,约为5~10秒,但是优势在于播放流畅不卡顿,且加载完毕后可来回拖拉进度条

    开始安装srs并配置HLS

    • 使用docker启动srs
    • 用的版本为srs5.0稳定版
    • 我们使用SRS内置的HTTP服务器分发HLS切片,也可以使用Nginx等Web服务器分发
    docker run -it --name=srs -d -p 1935:1935 -p  8080:8080  --restart=always registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5 ./objs/srs -c conf/hls.conf
    
    • 1
    [root@hcss-ecs-496b ~]# docker ps
    CONTAINER ID   IMAGE                                           COMMAND                   CREATED         STATUS         PORTS                                                                                                                                     NAMES
    855754b5c4c2   registry.cn-hangzhou.aliyuncs.com/ossrs/srs:5   "./objs/srs -c conf/…"   3 seconds ago   Up 2 seconds   1985/tcp, 0.0.0.0:1935->1935/tcp, :::1935->1935/tcp, 5060/tcp, 8000/udp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 9000/tcp, 10080/udp   srs
    
    
    • 1
    • 2
    • 3
    • 4
    • 相比较webrtc来说,配置少了很多,当然也可以配置https,srs也提供https.hls.conf,都可以使用,因为hls不像webrtc强制要求使用https,这次我们就不使用https来启动

    • 查看docker ps 可以看到容器正常运行着,这就代表着srs服务已经部署完毕了

    配置云耀云服务器L实例安全组

    • 经过上面部署srs服务,这时候服务是已经部署完毕了,但是我们还没法通过外网进行访问,还需要对云耀云服务器L安全组的配置进行修改

    • 进入安全组的配置页面
      在这里插入图片描述

    • 点击创建安全组
      在这里插入图片描述

    • 创建安全组
      在这里插入图片描述

    • 配置规则
      在这里插入图片描述

    • 选择添加规则
      在这里插入图片描述

    • 这里我们开放1935,8080即可,而webrtc则需要开放更多的端口
      在这里插入图片描述

    • 把我们刚才的华为云实例加入安全组
      在这里插入图片描述

    • 然后把默认的安全组移除实例
      在这里插入图片描述

    • 这样我们的实例就只受一个安全组保护,我们的端口也就开放成功了


    srs功能测试

    srs服务器监控

    • 部署完毕srs后,那肯定是要对srs进行功能测试
      在这里插入图片描述- 点击进入SRS控制台,可以监控服务器的运行状态与srs的运行状态,以及负载网速cpu磁盘等各种信息

    使用HLS推流测试

    • 进入srs播放器
      在这里插入图片描述

    • 我们使用FFMPEG进行推流

    • linux环境使用如下sh脚本进行推流

        for((;;)); do \
            ./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.flv \
            -c copy \
            -f flv rtmp://192.168.1.170/live/live200; \
            sleep 1; \
        done
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • windows环境使用如下bat脚本进行推流
    @echo off
    :loop
    .\ffmpeg.exe -re -i test.mp4 -vcodec h264 -c copy -f flv rtmp://192.168.1.170/live/live200
    timeout /t 1
    goto loop
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 然后进入SRS播放器播放HLS流

    • 这里要注意的是播放地址的写法,是标准的播放HLS流的写法http://192.168.1.170:8080/live/live200.m3u8
      在这里插入图片描述

    • 可以很清楚的看到有进度条,而且随着时间推移,进度条会不断增大,而且画面流畅清晰

    • 至此srs-hls就部署完毕了

    • 相关阅读:
      为什么短视频离不开美颜SDK?短视频领域的秘密武器
      企业信息化整体解决方案
      golang操作zookeeper
      关于贪心算法的经典问题(算法效率 or 动态规划)
      孙宇晨:稳定币支付交易具百倍增长潜力 后FTX时代行业仍需修炼内功
      技术分享 | 基于 Alertmanager 告警系统的改造
      计算机竞赛 深度学习机器视觉车道线识别与检测 -自动驾驶
      web前端之uniApp实现选择时间功能
      什么是Linux的Overcommit和OOM
      LabVIEW生成和打印条形码
    • 原文地址:https://blog.csdn.net/lgbisha/article/details/133354368