利用 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

相关推荐
工程师老罗11 分钟前
龙芯2k0300 PMON取消Linux自启动
linux·运维·服务器
skywalk816335 分钟前
网站证书自动续订失败的问题解决,原来是续订指令certbot renew出错,导致crontab定时任务续订失败
运维·服务器·证书·certbot
额呃呃39 分钟前
游戏服务器和一般高性能服务器的区别
运维·服务器·游戏
liwulin05061 小时前
【JAVA】创建一个不需要依赖的websocket服务器接收音频文件
java·服务器·websocket
gaize12131 小时前
服务器分类及区别划分!多样化服务器用途体系架构及层次分类
运维·服务器·架构
oMcLin3 小时前
如何在Manjaro Linux上配置并优化Caddy Web服务器,确保高并发流量下的稳定性与安全性?
linux·服务器·前端
济6173 小时前
linux(第七期)--gcc编译软件-- Ubuntu20.04
linux·运维·服务器
星辰烈龙4 小时前
黑马程序员JavaSE基础加强d5
服务器·网络·php
浩子智控5 小时前
分区操作系统、容器化、虚拟机的概念
服务器·系统安全
小宇的天下5 小时前
Calibre 3Dstack --每日一个命令day7【Centers】(3-7)
java·服务器·数据库