SRS视频流服务器初试
1.关于协议理解
在前面的博客中,我简单的介绍了关于RTC,RTMP,HLS三个协议的不同之处和区分点。
关于这三者协议SRS文档中有着较好的介绍
2.快速开始
1.SRS安装
使用SRS文档中快速开始,docker进行启动,非常简单
--rm:当容器stop时,自动删除容器(所以仅仅demo使用)
-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需要使用命令行进行推流):
在obs设置中选择推流
服务器栏为:rtmp://你的ip/live/
串流密钥为:livestream
选:你可以在输出中设置流的码率,测试服务器带宽较弱,我改为300kb
在来源中添加视频流(视频文件/显示器采集等方式)
点击推流,即可成功
3.拉流
注:
根据你Docker部署的方式不同,你拉流URL也会有所不同,因为他们采用了不同的编码。比如在本文中,我使用RTMP方式进行推流,SRS搭建也是直播Stream方式。所以你在拉流时有三种选择:
RTMP:
rtmp://ip/live:8080/livestream
(本方式需要使用VLC等软件进行播放)(延迟3s左右)H5(HTTP-FLV):
http://localhost:8080/live/livestream.flv
(延迟3s左右)FLV的格式是SRS在服务器中将RTMP封装为FLV格式进行分发(因为RTMP和FLV关系非常“亲近,所以这个封装的行为不会非常耗时和消耗资源,故此格式能保证较低的延迟(详细可以参考SRS文档介绍)
详细可以查看
FLV-RTMP关系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左右的延迟
- 选择媒体,流,网络,输入网络URL
- URL填入注中的三种拉流URL,都可以实现拉流
SRS视频流服务器初试的更多相关文章
- 为SRS流媒体服务器添加HLS加密功能(附源码)
为SRS流媒体服务器添加HLS加密功能(附源码) 之前测试使用过nginx的HLS加密功能,会使用到一个叫做nginx-rtmp-module的插件,但此插件很久不更新了,网上搜索到一个中国制造的叫做 ...
- SRS流媒体服务器搭建+ffmpeg推流VLC取流观看
一.编译SRS https://github.com/winlinvip/simple-rtmp-server 目前有1.0-release.2.0.3.0等版本 2.0官方文档地址:https:// ...
- linux部署安装SRS流媒体服务器教程
这段时间一直在搞RTMP流媒体直播项目,期间踩过很多坑,刚开始是用的nginx-rtmp作为流媒体转发服务器,但是效果并不尽人意,推拉流不稳定,特别是拉流,速度特别慢,平均要十多秒才能拉到流,并且交互 ...
- centos 安装 rtmp nginx 视频流服务器
---恢复内容开始--- 1.使用yum安装git yum -y install git 2.下载nginx-rtmp-module,官方github地址 // 通过git clone 的方式下载到服 ...
- Android直播实现srs流媒体服务器部署
链接:http://blog.csdn.net/mr_sk/article/details/71086885 在配置文件中加入 pid 参数执行
- ubuntu 14.04 下实现浏览器接收UDP视频流
前言 由于近期项目需求,需实现在浏览器上实时预览接收UDP视频流信息.此功能若在VLC上可轻松播放,奈何由于Chrome.Firefox版本的升级,渐渐浏览器不支持外部插件,因而使用VLC web插件 ...
- 动车上的书摘-java网络 连接服务器
摘要: 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 应该有些延迟,你会看到黑幕中弹出 来自USA的X原子的计量时间: ...
- Android视频直播:流媒体服务器搭建
一.前言 实时视频直播是这两年非常火的技术形态,已经渗透到教育.在线互娱等各种业务场景中.但要搭建一套实时视频直播系统,并非易事,下面针对直播系统的的搭建做一下说明: 1.1 通常的直播系统的技术模型 ...
- 利用flask将opencv实时视频流输出到浏览器
opencv通过webcam可以获取本地实时视频流,但是如果需要将视频流共享给其他机器调用,就可以将利用flask框架构建一个实时视频流服务器,然后其他机器可以通过向这个服务器发送请求来获取这台机器上 ...
- 【腾讯Bugly干货分享】H5 视频直播那些事
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a42ee6503dfcb22007ede8 Dev Club 是一个交流移动 ...
随机推荐
- Git+Github协作开发流程
采用合作开发者的方式进行协作开发,下面以zlcook和zlserver合作开发iqas-ios-record项目为例进行讲解,zlcook为项目创建者,zlserver为项目参与者.协作开发步骤如下: ...
- Go语言核心36讲26
你好,我是郝林.今天我分享的主题是测试的基本规则和流程的(下)篇. Go语言是一门很重视程序测试的编程语言,所以在上一篇中,我与你再三强调了程序测试的重要性,同时,也介绍了关于go test命令的基本 ...
- laravel ajax用法
$.ajax({ url:"index.php?r=sms/sms", type:"POST", data:{phone:mobileNum,_csrf:csr ...
- ES文件传输助手1.0.0
软件下载地址 1.软件功能 与 ES文件浏览器 的快传功能 直接传输文件 支持接受文件点击预览 可以多台电脑使用该软件,从而实现电脑与电脑局域网互传文件 单个文件夹上传会递归上传该文件夹下所有文件夹与 ...
- 更改grub2背景图片
在/etc/grub/default这里面修改东西然后update-grub来间接修改/boot/grub/grub.cfg中的内容 1.将png图片放进/boot/grub/目录下 2.update ...
- js 获取相同name元素的属性值
如图有8-12月5个文本域,id为plan8-12,name同为plan. 现在要获取name同为plan的所有属性值: 方法一: var allplan =document.getElementsB ...
- Asp.Net Core&Jaeger实现链路追踪
前言 随着应用愈发复杂,请求的链路也愈发复杂,微服务化下,更是使得不同的服务分布在不同的机器,地域,语言也不尽相同.因此需要借助工具帮助分析,跟踪,定位请求中出现的若干问题,以此来保障服务治理,链路追 ...
- 爬虫笔记之xpath
目录 xpath如何取包含多个class属性 xpath获取当前标签下的所有文本(包括子标签) xpath如何取包含多个class属性 如果HTML结构是这样 <div class=" ...
- mq中如何保证消息的顺序性
先说结论 不建议在mq当中使用消息的投递顺序来保证消息的顺序一致性 反思为什么需要保留消息的顺序性 日常思维中,顺序大部分情况会和时间关联起来,即时间的先后表示事件的顺序关系.消息队列中的若干消息如果 ...
- 金融科技 DevOps 的最佳实践
随着软件技术的发展,越来越多的企业已经开始意识到 DevOps 文化的重要价值.DevOps 能够消除改变公司业务开展方式,并以更快的速度实现交付,同时创建迭代反馈循环以实现持续改进.而对于金融科技( ...