SRS视频流服务器初试

1.关于协议理解

在前面的博客中,我简单的介绍了关于RTC,RTMP,HLS三个协议的不同之处和区分点。

音视频流简介

关于这三者协议SRS文档中有着较好的介绍

SRS文档

2.快速开始

1.SRS安装

使用SRS文档中快速开始,docker进行启动,非常简单

--rm:当容器stop时,自动删除容器(所以仅仅demo使用)

-it :这位兄弟写的很好:

docker运行容器命令中-it是什么意思

  • -i:以交互模式运行容器
  • -t:为容器重新分配一个伪输入终端
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \
registry.cn-hangzhou.aliyuncs.com/ossrs/srs:4 ./objs/srs -c conf/docker.conf

然后打开8080端口,进入服务器的控制台

连接SRS,端口号不为默认的8080,为1985

连接成功后,在概况中可以看到SRS的主机负载等信息

2.推流

在1中,我是用的直播Stream的配置方式,使用RTMP进行直播流推送,RTMP基于TCP链接,需要打开服务器1935端口,需要注意

现在开始推流和拉流:

使用obs,(你也可以使用ffmeg,obs为可视化界面,ffmeg需要使用命令行进行推流):

  1. 在obs设置中选择推流

    服务器栏为:rtmp://你的ip/live/

    串流密钥为:livestream

  2. 选:你可以在输出中设置流的码率,测试服务器带宽较弱,我改为300kb

  3. 在来源中添加视频流(视频文件/显示器采集等方式)

  4. 点击推流,即可成功

3.拉流

注:

根据你Docker部署的方式不同,你拉流URL也会有所不同,因为他们采用了不同的编码。比如在本文中,我使用RTMP方式进行推流,SRS搭建也是直播Stream方式。所以你在拉流时有三种选择:

  1. RTMP: rtmp://ip/live:8080/livestream(本方式需要使用VLC等软件进行播放)(延迟3s左右)

  2. H5(HTTP-FLV): http://localhost:8080/live/livestream.flv(延迟3s左右)

    FLV的格式是SRS在服务器中将RTMP封装为FLV格式进行分发(因为RTMP和FLV关系非常“亲近,所以这个封装的行为不会非常耗时和消耗资源,故此格式能保证较低的延迟(详细可以参考SRS文档介绍)

    详细可以查看
    FLV-RTMP关系

  3. H5(HLS): http://localhost:8080/livestream.m3u8(延迟10s+)

在1中协议理解,SRS官方文档以及我的简单介绍,中有这三种协议的特点介绍。

1)方式一:SRS网页播放器(推荐)

播放器链接 :

http://ip/players/srs_player.html?vhost=__defaultVhost__&app=live&stream=livestream.flv&server=101.43.244.40&port=8080&autostart=true&schema=http

通过此网页播放器,可以通过2(RTMP封装FLV),3(HLS)方式拉流

2)方式二:VLC播放器(需要下载,延迟高,不推荐)

注:使用该方式播放,拉流的延迟会不稳定,如果你一直刷新,可以达到3s左右的延迟

  1. 选择媒体,流,网络,输入网络URL
  2. URL填入注中的三种拉流URL,都可以实现拉流
posted @   yikolemon  阅读(275)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示