利用 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 文件添加到窗口

  1. whip 设置

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

  1. 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

相关推荐
007张三丰2 小时前
软件测试专栏(11/20):测试框架开发:pytest深度解析与插件体系
运维·服务器·自动化测试·pytest·测试框架
weixin_604236673 小时前
华三 路由器 极简核心配置
运维·服务器·网络·h3c·h3c路由器
鹤落晴春3 小时前
【Linux复习】管理SELinux安全性
linux·运维·服务器
xiejiashu5 小时前
EasyRTC三种工作模式发布,全终端覆盖音视频RTC实时通信99%应用场景
webrtc·webrtc原生sdk·webrtc c sdk·webrtc c++ sdk·webrtc安卓sdk
换个昵称都难6 小时前
webrtc 音频模块FEC模块
网络·音视频·webrtc
lizhihai_998 小时前
股市学习心得-AI 产业链核心标的梳理清单
大数据·服务器·人工智能·科技·学习
黄同学real8 小时前
解决 Visual Studio Web Deploy 远程发布报 401 未授权 (ERROR\_USER\_UNAUTHORIZED)
服务器
天天进步20159 小时前
Tunnelto 源码解析 #9:控制服务器设计:Warp、WebSocket、Ping/Pong 与连接保活
运维·服务器·websocket
Java面试题总结10 小时前
Linux-Ubantu-贴士-apt的地盘
linux·运维·服务器
●VON10 小时前
AtomGit Flutter鸿蒙客户端:数据模型
android·服务器·安全·flutter·harmonyos·鸿蒙