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,都可以实现拉流

SRS视频流服务器初试的更多相关文章

  1. 为SRS流媒体服务器添加HLS加密功能(附源码)

    为SRS流媒体服务器添加HLS加密功能(附源码) 之前测试使用过nginx的HLS加密功能,会使用到一个叫做nginx-rtmp-module的插件,但此插件很久不更新了,网上搜索到一个中国制造的叫做 ...

  2. SRS流媒体服务器搭建+ffmpeg推流VLC取流观看

    一.编译SRS https://github.com/winlinvip/simple-rtmp-server 目前有1.0-release.2.0.3.0等版本 2.0官方文档地址:https:// ...

  3. linux部署安装SRS流媒体服务器教程

    这段时间一直在搞RTMP流媒体直播项目,期间踩过很多坑,刚开始是用的nginx-rtmp作为流媒体转发服务器,但是效果并不尽人意,推拉流不稳定,特别是拉流,速度特别慢,平均要十多秒才能拉到流,并且交互 ...

  4. centos 安装 rtmp nginx 视频流服务器

    ---恢复内容开始--- 1.使用yum安装git yum -y install git 2.下载nginx-rtmp-module,官方github地址 // 通过git clone 的方式下载到服 ...

  5. Android直播实现srs流媒体服务器部署

    链接:http://blog.csdn.net/mr_sk/article/details/71086885 在配置文件中加入 pid 参数执行

  6. ubuntu 14.04 下实现浏览器接收UDP视频流

    前言 由于近期项目需求,需实现在浏览器上实时预览接收UDP视频流信息.此功能若在VLC上可轻松播放,奈何由于Chrome.Firefox版本的升级,渐渐浏览器不支持外部插件,因而使用VLC web插件 ...

  7. 动车上的书摘-java网络 连接服务器

    摘要: 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 应该有些延迟,你会看到黑幕中弹出 来自USA的X原子的计量时间: ...

  8. Android视频直播:流媒体服务器搭建

    一.前言 实时视频直播是这两年非常火的技术形态,已经渗透到教育.在线互娱等各种业务场景中.但要搭建一套实时视频直播系统,并非易事,下面针对直播系统的的搭建做一下说明: 1.1 通常的直播系统的技术模型 ...

  9. 利用flask将opencv实时视频流输出到浏览器

    opencv通过webcam可以获取本地实时视频流,但是如果需要将视频流共享给其他机器调用,就可以将利用flask框架构建一个实时视频流服务器,然后其他机器可以通过向这个服务器发送请求来获取这台机器上 ...

  10. 【腾讯Bugly干货分享】H5 视频直播那些事

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a42ee6503dfcb22007ede8 Dev Club 是一个交流移动 ...

随机推荐

  1. Kubernetes_从零开始搭建k8s集群(亲测可用)

    一.前言 本文讲述从零开始搭建k8s集群,均使用国内镜像,版本均统一,使用两个虚拟机,一个主节点,一个从节点,保证k8s一次搭建成功. 注意:Kubernetes,简称K8s,是用8代替名字中间的8个 ...

  2. __init__、__all__

    在python中 引用模块包的时候,要先进入此模块的__init__.py中畅游一遍,因此,我们多次需要一个语句的时候,就可以将这些语句写入到__init__.py中: 在使用*号的时候我们可以用__ ...

  3. C++初阶(封装+多态--整理的自认为很详细)

    继承 概念:继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类.继承呈现了面向对象程序设计的层次结构,体现了由简单 ...

  4. vue 3.0 常用api 的简介

    vue3.0 生命周期 写法一 和vue2.x 一致 区别在于(beforeUnmount.unmount)名称不一样 写法二 在setup 中使用, 需要引用 如: import { onBefor ...

  5. 将现有源码添加进repo管理

    将现有源码添加进repo管理 适用于大型项内无源码管理(git/repo)的源码 前言 ​ 公司在进行一些项目的开发时,从供应商原厂给的code内没有包含任何源码管理的文件.需要多人协同开发,但由于项 ...

  6. VH6501模板工程介绍(一)

    VH6501硬件结构 1.式样 1.正向有5个灯,用来指示干扰的触发状态,干扰类型(数字或模拟),通道通信以及设备状态. 2.两个DB9接口(公头male和母头female),这是CAN或CANFD通 ...

  7. 我要涨知识——TypeScript 常见面试题(二)

    又是一个年底来了,好大一批人可能又准备跑路了,最近回家待产,翻了翻掘金和 CSDN 发现好多大佬都有大厂 Offer ,看着看着我心动了! 话不多说,赶紧开干,给自己整了一个前端面试小助手--微信小程 ...

  8. vulnhub靶场渗透实战11-Deathnote

    ​网络模式,怎么方便怎么来. 靶场地址:https://download.vulnhub.com/deathnote/Deathnote.ova 这个靶机很简单.vbox装好.​ 1:主机发现,和端口 ...

  9. Qwt开发笔记(一):Qwt简介、下载以及基础demo工程模板

    前言   QWT开发笔记系列整理集合,这是目前使用最为广泛的Qt图表类(Qt的QWidget代码方向只有QtCharts,Qwt,QCustomPlot),使用多年,系统性的整理,本系列旨在系统解说并 ...

  10. Spring Boot回顾

    一.概述 1.Spring的优缺点 优点 无需开发ELB,通过IOC和AOP,就可以使用POJO(简单的Java对象)实现ELB的功能 缺点: 依赖管理导入Maven耗时耗力 注解繁琐 2.Sprin ...