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

相关推荐
nako_sayuri12 分钟前
Linux进程间通信----简易进程池实现
linux·服务器·进程池
捏尼卜波卜17 分钟前
TCP 四次挥手
服务器·网络·tcp/ip
stormsha37 分钟前
MCP架构全解析:从核心原理到企业级实践
服务器·c++·架构
Zfox_1 小时前
【C++项目】:仿 muduo 库 One-Thread-One-Loop 式并发服务器
linux·服务器·c++·muduo库
_可乐无糖1 小时前
AWS WebRTC:获取ICE服务地址(part 2): ICE Agent的作用
服务器·网络·webrtc
小峰编程1 小时前
rsync服务的搭建
linux·运维·服务器·云原生·centos·服务搭建
czhc11400756632 小时前
LINUX 61 rsync定时同步;软链接
linux·运维·服务器
rqtz4 小时前
【Linux】Linux文件系统详解
linux·运维·服务器
gucong5 小时前
让 Ubuntu Touch 20.04 的系统分区可写入
linux·服务器·ubuntu
路由侠内网穿透5 小时前
本地部署消息代理软件 RabbitMQ 并实现外部访问( Windows 版本 )
服务器·开发语言·windows·数据分析·rabbitmq·ruby