之所以要搭建一个在公网环境下一对一毫秒级延时的直播, 就是为了做一个不限遥控距离的小车, 使用安卓手机基于aoa协议+4g/5g实现, 理论上只要电池有电(可采用太阳能方案)和有4g/5g信号的地方, 坐在屋里可以遥控着小车满世界的跑...不好意思跑题了, 进入正题.

srs服务之强大我不废话, 如果想看官方wiki, 请直接移步github或者gitee, 我建议访问gitee: 因为速度快https://gitee.com/winlinvip/srs.oschina/wikis/v4_CN_Home(目前版本更迭到v4.0.150), 我对官方wiki印象最深的一句话就是"不读Wiki一定扑街", 其实我想说, 即便你看了官方文档也有可能扑街, 如果按照官方文档上搭建一个直播延时在2~5秒服务的话比较简单, 按照官网一步步做就好了, 但是我为了实现毫秒级的延时, 发现按照官网的文档操作起来有点吃力, 或者说没办法达到我预期的效果, 可能我阅读文档时不够仔细或者理解不够到位吧, 不过我还是根据官网琢磨了一套能实现毫秒级延时直播的方法, 仅供参考.

本文介绍的是使用rtmp推流, webrtc拉流的方式, 官网上介绍了多种推拉流方式, 每种方式的延时情况都不一样, 详情可参考官网.

先说下我的前期准备, 很简单, 一台阿里云的服务器(CentOS 7.6), 具体配置: 8g内存, 2核cpu, 5m的带宽(搞直播嘛, 内存和cpu可以要求不那么高, 但是带宽要稍微高一些), 一部安卓手机, 一台电脑, 没了.

官网推荐使用Docker来安装srs服务, 只是推荐, 实际根据个人情况而定, 我使用的是源码编译安装的方式, 本文也是基于此种方式, 如果读者非要用Docker安装, 请直接移步github或者gitee.

我下载安装的目录是 /root 读者可根据自己的喜好选择下载安装目录.

第一步下载, 依然推荐gitee, 如果你对自己的网速有信心请移步github

下载完成后在当前目录下生成了一个srs目录.

第二步进入到srs目录下的 trunk, 配置安装路径, 编译(编译即可, 无需安装)

如果在第二步出现编译错误, 请检查你的服务器是否安装好了依赖, 百度一下就可以了.

安装成功后来到下面这个目录里, 会发现在该目录里都是*.conf的配置文件, 根据官网的说明, 这些配置文件里都详细的记载了不同需求的配置, 分类的非常详细, 其中full.conf是最全的, 有兴趣的小伙伴可以看看.

我直接修改的srs.conf, 以防万一, 小伙伴可以提前备份下srs.conf, 直接上我的配置.

这里重点说下candidate这个参数, 如果小伙伴查看官网的wiki, 也会发现这里是非常重要的, 为了方便, 我这里直接填写的阿里云公网服务器的ip地址, 小伙伴们填写自己的公网ip就好了.

第二个要说明的参数是vhost__defaultVhost__节点下的http_hooks节点, 这个节点是用来推流和拉流鉴权验证的, 意思就是说, 如果其他人知道了我这台服务器ip, 岂不是可以随意的往这台服务器推流和拉流了么, 所以这个节点是配置回调地址用来做鉴权验证的, 有人向这台服务器推流或者拉流的时候, srs服务就会回调这个节点下的接口地址去做鉴权了, 当然回调地址里的鉴权代码就要自己写啦, 这个http_hooks节点小伙伴们可以注释掉, 否则你一定会推流和拉流失败的.

其它参数可以自行查看官网wiki, 说的很清楚.

接下来就是要保证你服务器防火墙的端口都要开启(或者你嫌麻烦就关闭防火墙和selinux, 但我不建议你这么做), 同样再登录阿里云的控制台, 确保相应端口都放开, 否则依然无法推流和拉流成功.

需要用到的端口参考如下, 注意: 8000端口协议是udp

接下来就是启动srs服务了, 我使用的是下面这种方式启动, 请注意执行的路径和启动加载的配置文件名

使用ps来查看下是否启动成功

在手机商店里下载一款杏林推流的软件, 在推流地址中输入自己的公网地址, 比如我填写的地址是: rtmp://123.73.219.18/live/12345678(这个ip地址一定要写自己公网的服务器ip, /live/12345678的含义请查看官网wiki, 这里不做过多解释), 分辨率默认是540P, 可以调的稍微小点, 比如360P, 然后点击开始推流, 注意这里点击了开始推流后只是进入了视频预览界面, 还需要再点一次预览界面下放的开始推流, 才是真正的推流到公网服务器. 这里说明下, 实际的遥控小车项目中, 我并没有使用杏林推流, 而是自己写的一个推流app.

下面就是进入拉流播放的阶段, 打开电脑浏览器访问 http://123.73.219.18:1985/console/ng_index.html#/connect, 会看到下面的页面.

点击连接到srs, 如果出现下面的页面, 恭喜你离成功近了一步.

点击上方菜单的视频流选项, 进入流管理和预览的页面, 如果你看到了下面的页面, 恭喜你, 离成功又近了一步

点击预览, 跳转至预览页面, 默认显示的是srs播放器的页面.

我们需要切换到RTC播放器的页面, 点击RTC播放器选项, 默认显示的页面如下

重点又来了, 如果此时你点击播放视频, 是根本看不到直播画面的, 因为URL的地址不对, 需要把 ".flv"删掉后再点击视频播放, 就能看到实时的直播画面了, 延时在毫秒级别, 已经满足我用来控制小车的需求了.

手摸手教你使用srs服务搭建毫秒级延时直播相关推荐

  1. 【万字长文】手摸手教你shell脚本编程

    [万字长文]手摸手教你shell脚本编程 我写这篇文章的目的 前段时间参加了联创团队的春令营, 为期半个多月的春令营做了三个项目, 其中有一个项目是关于shell的, 当时完全没接触过shell脚本编 ...

  2. 微服务(三) 【手摸手带你搭建Spring Cloud】 Ribbon 什么是负载均衡?spring cloud如何实现负载均衡?ribbon负载均衡有几种策略?Ribbon是什么?

    在上一章,我介绍了springcloud的eureka搭建.我们做了服务注册.最后我们还介绍了一些续约,失效剔除等参数配置.已经不需要再通过手动输入ip去访问服务,而是通过中心只需要通过服务名就可以获 ...

  3. 手摸手教你做动态壁纸

    手摸手教你做动态壁纸 Android · jeasonwong · 于 5 天前发布 · 最后由 xingstarx 于 2 天前回复 · 440 次阅读 项目地址:https://github.co ...

  4. 手摸手,带你用vue撸后台 系列一(基础篇) - 掘金

    完整项目地址:vue-element-admin 系列文章: 手摸手,带你用 vue 撸后台 系列一(基础篇) 手摸手,带你用 vue 撸后台 系列二(登录权限篇) 手摸手,带你用 vue 撸后台 系 ...

  5. 招聘行业颠覆者【伯小乐】| 手摸手产品研究院

    手摸手产品研究院是由PMCAFF发起的深度研究产品的产品经理精华小分队,旨在每天一起研究一款产品,并且由阿德老师手摸手指导写分析报告. 作者微信:weihe2416 "伯小乐" 是 ...

  6. 短视频Gif快手-有点意思 | 手摸手产品研究院

    手摸手产品研究院是由PMCAFF发起的深度研究产品的产品经理精华小分队,旨在每天一起研究一款产品,并且由阿德老师手摸手指导写分析报告.                                 ...

  7. IN-我的生活in记 | 手摸手产品研究院

    手摸手产品研究院是由PMCAFF发起的深度研究产品的产品经理精华小分队,旨在每天一起研究一款产品,并且由阿德老师手摸手指导写分析报告. 引言 IN是一款基于女性和品牌的时尚品位分享移动端社区,以图片社 ...

  8. 玩美自由行体验报告 | 手摸手产品研究院

    手摸手产品研究院是由PMCAFF发起的深度研究产品的产品经理精华小分队,旨在每天一起研究一款产品,并且由阿德老师手摸手指导写分析报告. 个人微信:Hm_VS_Zyf 玩美自由行app是一款在线境外旅行 ...

  9. 手摸手产品研究院 | 玲珑沙龙-一个可以“撕逼”的女性文化社区

    手摸手产品研究院是由PMCAFF发起的深度研究产品的产品经理精华小分队,旨在每天一起研究一款产品,并且由阿德老师手摸手指导写分析报告. 1-玲珑沙龙? 什么是玲珑沙龙,那些人在玩玲珑沙龙,为什么会玩? ...

最新文章

  1. 图像孔洞填充与小连通域的删除
  2. 计算机丢失ac1st.dll怎么找回,CAD提示ac1st16.dll丢失修复步骤
  3. 【Apache POI】基础处理方法总结
  4. CodeForces - 1457E New Game Plus!(贪心)
  5. 文献学习(part49)--机器学习面临的挑战
  6. oracle实例名,数据库名,服务名等概念差别与联系
  7. 问题二十六:C++全局变量的使用实例
  8. 结对-四则运算答题器-开发环境搭建过程
  9. 博弈论 | 演化博弈理论(Evolutionary Game Theory)的理解
  10. Excel在数据分析和日常工作的运用
  11. # simulink高级应用-matlab function中查看变量
  12. 剑指offe55--链表中环的入口结点
  13. 人工智能和5G在无人机技术中的作用
  14. 华为服务器 自动安装 黑屏,华为服务器显示器黑屏如何解决
  15. ISTQB认证考试通过秘籍 问题一、ISTQB是什么?有哪些分类? ISTQB(International Software Testing Qualification Board)是国际唯一权威的软
  16. GD32篇 一、GD32程序设置读保护,防止程序被读取
  17. 关于广告投放需要懂的几个关键词(DAU,DNU等等)
  18. 苹果店里卖移动套餐,走出甲方思维
  19. mplayer 使用手册(中文)
  20. swagger2配置

热门文章

  1. eco淘客机器人-ECO云返利系统淘客
  2. 麒麟系统(Fedora 64)安装谷歌(chrome)浏览器
  3. 北斗星通GPS调试记录
  4. APP下载量成空洞,留住用户最关键
  5. 计算机专业硕士学费,2015计算机工程硕士专业学费汇总
  6. 开课吧python9.9元_神器!全网爬资源!低调使用
  7. 树莓派蓝牙连接就断开
  8. webrtc android 声音处理,WebRTC 安卓有视频无声音问题解决
  9. 微信小程序连接mysql
  10. 思科开源软交换机vpp环境搭建