当前位置: 首页 > article >正文

利用 OBS 推送 WEBRTC 流到 smart rtmpd

webrtc whip 推流 & whep 拉流简介

RFC 定义

通用的 webrtc 对于 SDP 协议的交换已经有对应的 RFC 草案出炉了。这就是 WHIP( push stream ) & WHEP ( pull stream ) .
WHIP RFC Link: https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html
WHEP RFC Link: https://www.ietf.org/archive/id/draft-murillo-whep-03.html

环境准备

要搭建 whip 和 whep 的整体演示环境需要准备 WHEP 推流端,sfu 服务器端,whep 拉流端。这里采用 OBS 实现 WHIP , smart rtmpd 实现 SFU, WEB player 实现 WHEP 。

  1. OBS 准备
    OBS 支持 webrtc 的 WHIP 推流版本是 >= 30.0, 本文采用的是 Windows 版本的 30.2.3。下载地址为: https://obsproject.com/download
    在这里插入图片描述

只有版本符合的才支持 whip 推流

  1. SFU 准备
    smart rtmpd 支持 webrtc 的 WHIP/WHEP 版本是 >= 2024.10.10 ,本文采用的是 Windows 版本的 2024.10.10。下载地址为:https://github.com/superconvert/smart_rtmpd/blob/master/rtmpd.zip
    在这里插入图片描述

smart rtmpd 的版本是以日期命名的,格式是:年月日 时分秒

  1. Web player 准备
    smart rtmpd 自带的演示页面内就有 webrtc 的 WHEP 播放器,运行 smart rtmpd 后,只需输入 http://服务器地址:端口 就会进入 smart rtmpd 自带的主页面。
    在这里插入图片描述

上图中 whip 列表包含所有的 whip 推流,点击其中一路,whep 播放器就会播放 webrtc 流

OBS 推流

  1. 添加媒体源
    在这里插入图片描述

选择一个 mp4 文件添加到窗口
2. whip 设置
在这里插入图片描述

点击 <设置> 按钮,进入设置主界面,点击 <直播> 按钮,选择 <服务> 为 “WHIP”, <服务器> 一栏填写 WHIP URL: “http://192.168.0.10:8080/whip/v1?app=live&name=stream”
3. whip 推流

点击 <开始直播> 按钮
在这里插入图片描述

推流成功标志

在这里插入图片描述

服务器日志有 webrtc://192.168.0.10:8080/live/stream 的字样,基本上就表明推流成功了, live 就是 app 分类, stream 就是流的名字 name

Web player 拉流

在这里插入图片描述

访问 smart rtmpd 自带的主页面,最下面就会有 WHIP 列表,因为可能存在多路 webrtc 的 whip 推流,展开 WHIP 列表, 找到刚才的推流,点击就会通过 whep 播放 webrtc 的视频了。

视频演示

B站: https://www.bilibili.com/video/BV1Tp2dYbEfR/?spm_id_from=333.337.search-card.all.click
抖音:https://www.douyin.com/user/MS4wLjABAAAAWHrvSz-DdJeb8-RgzWZRZOAb52fjdiKaAIuIWVHTl7ZhX6wIOrL4T_MzYkCnWgGm?from_tab_name=main&modal_id=7425917377214221631&vid=7278584962377403683


http://www.kler.cn/news/356982.html

相关文章:

  • 数据结构--二叉树随记
  • IDEA中我常用的快捷键
  • 基于微信小程序的汽车预约维修系统(lw+演示+源码+运行)
  • 前端遮罩层的应用
  • 51单片机的智能电饭煲【proteus仿真+程序+报告+原理图+演示视频】
  • 基于DNA算法的遥感图像加解密matlab仿真
  • ElasticSearch集群搭建及常见问题(三节点)
  • MySQL去除空白字符(如非标准空格、制表符等)
  • STM32学习笔记---DMA
  • UE小:UE5的Pixelstreaming在捕获画面的时候没办法显示非Viewport的Slate区域按钮的ToolTip
  • 51单片机的仓库管理系统【proteus仿真+程序+报告+原理图+演示视频】
  • 一次使用LD_DEBUG定位问题的经历
  • 【论文速读】|PROMPTFUZZ:利用模糊测试技术对大语言模型中的提示注入进行鲁棒性测试
  • 文本数据可视化
  • Kettle9.4支持Clickhouse数据源插件开发以及性能测试
  • 基于因果推理的强对流降水临近预报问题研究
  • adb使用命令记录
  • hadoop启动的命令
  • 【LeetCode算法笔记】Day1:动态规划基础
  • 【CTF-SHOW】Web入门 Web14 【editor泄露-详】【var/www/html目录-详】