码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • srs webrtc推拉流环境搭建(公网)


    本地环境搭建
    官方代码https://github.com/ossrs/srs
    拉取代码:

    git clone https://github.com/ossrs/srs.git
    
    • 1
    cd  ./configure
    make
    ./objs/srs -c conf/https.rtc.conf
    
    • 1
    • 2
    • 3

    srs在公网上,由于srs是lite-ice端,导致他不会主动到srs获取自己的公网ip,因此需要在这里帮他指定 ,他才会把这个ip放到sdp中,发给full-ice的浏览器客户端。
    切记不可以写为127.0.0.1。
    本地环境搭建参考另一篇:srs webrtc推拉流环境搭建(本地)

    rtc_server {
        enabled on;
        listen 8000; # UDP port
        # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#config-candidate
        candidate  139.169.8.2; $CANDIDATE;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    也可以在外部给变量赋值:CANDIDATE=“139.169.8.2”

    运行起来以后,打开firefox或者chrome浏览器,打开:
    https://118.190.201.242:8088/players/rtc_publisher.html?autostart=false&stream=livestream&api=1990&schema=https
    注意这里与本地部署srs相比,http改为https,端口号改为8088,新增api端口1990。
    在这里插入图片描述

    如果srs在公网的话需要改称https和对应IPhttps://118.190.201.242:8088/players/rtc_player.html?autostart=false&stream=livestream&api=1990&schema=https
    在这里插入图片描述

    其中的URL为:webrtc://localhost/live/show,这其中的live/show是可以自定义的,只要推拉流保持一致即可,当一个客户端向上推流,可以多个客户端拉流。那么其实我们可以把live看成房间名字,show看成成员id,那么成员show2可以向live中的webrtc://localhost/live/show2推流,其他客户端拉这个地址也能拉到。

    关于信令的交互:我们打开这个推拉流连接,那么浏览器就去所在的ip地址去寻找srs服务,然后与其中的https服务器交互,下载页面,当我们填好URL地址,点击开始推流或播放视频按钮时,我们的浏览器客户端先与https交互信令,比如推流和拉流信令等,具体可以参考如下连接,然后进行sdp交互,之后是stun bind request/response交互,之后是DTLS握手,然后开始建立好webrtc传输通道,正式传输音视频流。

    http-api 信令https://ossrs.net/lts/zh-cn/docs/v4/doc/http-api
    可以看关于webrtc只有推流和拉流的信令,因为信令非常业务性的,这里只给个demo,关于房间管理之类的的信令,要根据自己的需要自己实现信令服务器。

    其实webrtc有自己的房间管理sfu如下连接,但这里的信令也只有推流,拉流,房间号,个人号。其实跟这个差不多,只是把自己的推拉和对其他成员的拉流放在一个界面里,在信令处理上,相当于每多一个客户推流,就会通知其他客户多拉一路流,并且自身拉已经存在的正在推流的客户,相当户多经营了这么一个信令。如果我们准备自己开发信令服务器,我建议还是在这篇环境的基础上开发,较为灵活。
    srs one2one,one2many通话环境搭建

    参考:
    官方RTC TO RTC

    B站官方教学视频

    chrome的webrtc控制台,包含码率帧率,sdp交互信息等:chrome://webrtc-internals/
    firefox也开发了这样的控制台:about:webrtc

    srs控制台可以实时查看webrtc在线人数
    在这里插入图片描述
    docker启动

    sudo docker run --rm --env CANDIDATE=$CANDIDATE   -p 1935:1935 -p 8080:8080 -p 1985:1985 -p 8000:8000/udp   registry.cn-hangzhou.aliyuncs.com/ossrs/srs:6.0-d2
    
    • 1

    进入docker不启动,加-it和bash

    sudo docker run --rm -it --env CANDIDATE=$CANDIDATE   -p 1935:1935 -p 8080:8080 -p 1985:1985 -p 8000:8000/udp   registry.cn-hangzhou.aliyuncs.com/ossrs/srs:6.0-d2   bash
    
    • 1

    srs在线whip/whep客户端:
    在以上环境中点击,whip按钮,点击推流 / 点击whep按钮,点击拉流,即可使用whip协议进行webrtc通话,obs最新版也支持了whip,它将成功webrtc的默认主流信令交互协议,上文的测试环境中,webrtc的信令是srs自定义的。
    srs在线rtc播放器
    https://ossrs.net/players/rtc_publisher.html

    webrtc是音视频必备,但即使从业数年,它似乎依然有无穷的秘密,感兴趣添加笔者微信:YQW1163720468,加入webrtc微信群讨论。但记得备注:webrtc爱好者

  • 相关阅读:
    Linux系统移植一:移植U-BOOT 添加自己的板子并编译(非petalinux版)
    【面试题精讲】构造方法有哪些特点?是否可被 override?
    Guitar Pro 8 .1全新功能介绍及2023官方特惠优惠券
    cmake简洁教程 - 第二篇
    顺应国家趋势,争做爱国程序员
    react使用hook封装一个search+input+checkbox组件
    智慧工地施工如何应用室内定位uwb技术
    微服务--数据同步
    计算机网络-网络层(路由算法与路由协议概述,IP数据报格式,IP数据报分片)
    cc2530用中断程序控制led灯亮灭
  • 原文地址:https://blog.csdn.net/weixin_43466192/article/details/134444198
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号