whip和whep

原文为runner365.git大佬的文章
原文链接:https://blog.csdn.net/sweibd/article/details/124552793
WHIP接口

  1. 什么是whip

全称: WebRTC-HTTP ingestion protocol (WHIP).

rfc地址: rfc-draft-murillo-whip-00

简单说,就是通过HTTP接口能导入webrtc媒体流。
2. webrtc publish/unpublish
2.1 webrtc publish

webrtc推流接口

方法: http post

uri: http://hostname:hostport/publish/roomId/uid

http post body: offerSdp

返回:
http body: asswerSdp

举例,向host=192.168.1.98:8090, roomId=2001, 自己作为uid=6547推流.

url为: http://192.168.1.98:8090/publish/2001/6547

post data为offerSdp

返回data为answerSdp
2.2 webrtc unpublish

本方法为优雅的关闭。

也可以暴力的关闭可以直接在客户端进行PeerConnection.Close(), 或者暴力关闭网页;

webrtc关闭推流接口

方法: http post

uri: http://hostname:hostport/unpublish/roomId/uid

http post body: null

返回:

http body:
{
“code”: 0,
“desc”: “ok”
}

举例,向host=192.168.1.98:8090, roomId=2001, 自己作为uid=6547关闭推流.

url为: http://192.168.1.98:8090/unpublish/2001/6547

post data为空

返回data为

{
“code”: 0,
“desc”: “ok”
}

  1. webrtc subscribe
    3.1 webrtc subscribe

webrtc拉流接口:

方法: http post

uri: http://hostname:hostport/subscribe/roomId/uid/remoteUid

其中uid为自己的uid,remoteUid为想要订阅的远端uid。

http post body: offerSdp

返回:
http body: asswerSdp

举例,向host=192.168.1.98:8090, roomId=2001, 自己作为uid=6547,从远端remoteUid=4489拉流.

url为: http://192.168.1.98:8090/subscribe/2001/6547/4489

post data为offerSdp

返回data为answerSdp
3.2 webrtc unsubscribe

本方法为优雅的关闭。

也可以暴力的关闭可以直接在客户端进行PeerConnection.Close(), 或者暴力关闭网页;

webrtc关闭拉流接口

方法: http post

uri: http://hostname:hostport/unsubscribe/roomId/uid/remoteUid

http post body: null

返回:

http body:
{
“code”: 0,
“desc”: “ok”
}

举例,向host=192.168.1.98:8090, roomId=2001, 自己作为uid=6547关闭对远端remoteUid=4489拉流.

url为: http://192.168.1.98:8090/unsubscribe/2001/6547/4489

post data为空

返回data为

{
“code”: 0,
“desc”: “ok”
}

  1. 客户端demo

提供客户端web demo: webrtc whip sdk

webrtc sfu服务: cpp_media_server
————————————————
版权声明:本文为CSDN博主「runner365.git」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sweibd/article/details/124552793

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/160679.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上位机与plc写心跳定时扫描连接状态

方法一:上位机读plc的某个地址,每秒 置0和置1,plc检查地址值每3秒值都是1就报错。 方法二:上位机每两秒给地址置1,plc一秒读到1就清除信号,读到0说明心跳掉线了。

C++电脑组装项目(涉及知识点:多态)

需求&#xff1a; #include <iostream> #include "Computer.h" #include "AbstractCpu.h" #include "AbstractMemory.h" #include "AbstractVideoCard.h" #include "IntelCpu.h" #include "IntelMemory.h" …

Redis的持久化(新)

Redis中数据都保存在内存&#xff0c;但是内存中的数据变换很快&#xff0c;也很容易丢失&#xff0c;比如连接断开、宕机停机等等。而Redis提供的数据持久化机制有RDB(Redis DataBase)和AOF(Append Only File)。 1.RDB RDB是指在指定的时间间隔内将内存中的数据集快照写入到磁…

HTML玩转超链接a标签

大家应该都知道&#xff0c;a标签主要是转跳链接&#xff0c;接下来&#xff0c;让我为大家介绍一下a标签的使用&#xff01; 主要的作用&#xff1a;从当前页面进行跳转 标签名标签语义常用属性单/双标签a超链接href&#xff1a;要跳转的具体位置 target&#xff1a;跳转时如…

第一百七十七回 如何创建垂直方向的Switch

文章目录 1. 概念介绍2. 思路与方法2.1 实现思路2.2 实现方法3. 示例代码4. 内容总结我们在上一章回中介绍了"如何创建渐变色边角"相关的内容,本章回中将介绍" 如何创建垂直方向的Switch".闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在前面…

zookeeper单机版的搭建

一 zookeeper的搭建 1.1 上传zkjar包 1.2 搭建配置 1.解压压缩包 [rootlocalhost export]# tar -zxvf zookeeper-3.7.0-bin.tar.gz 2.创建data文件夹 [rootlocalhost export]# cd apache-zookeeper-3.7.0-bin/ [rootlocalhost apache-zookeeper-3.7.0-bin]# ls bin conf…

利用人工智能打破应试教育惯性促进学生思维活化与创新能力培养的研究

全文均为人工智能独立研究完成 应试教育导致学生迷信标准答案惯性导致思维僵化-移动机器人-CSDN博客 用AI魔法打败AI魔法-CSDN博客 课题名称建议&#xff1a;“利用人工智能打破应试教育惯性&#xff0c;促进学生思维活化与创新能力培养研究”。 这个课题名称明确指出了研究的…

高斯消元(完全主元法 and 部分主元法) C++代码

部分主元法高斯消元 /* 算法步骤&#xff1a;1.枚举每一列&#xff0c;找到绝对值最大的一行2.将该行和第一行交换3.将该行行首置为一4.将下面所有行第 i 列置为零 */#include <iostream> #include <cmath>using namespace std; const int N 109; const double e…

Linux内核的内存管理

Linux内核源码内存管理主要包括以下几个部分&#xff1a; 1. 物理内存管理&#xff1a;这部分主要负责将物理内存划分为不同的页表项&#xff0c;以便操作系统能够快速地访问和操作内存。 2. 虚拟内存管理&#xff1a;这部分主要负责将用户空间的地址映射到物理内存中&#x…

linux之进程地址空间

文章目录 1.进程地址空间回顾1.1进程地址空间划分1.2验证进程地址空间划分1.简单划分2.完整划分 2.初探进程地址空间2.1初看现象2.2Makefile的简便写法 3.进程地址空间详解3.1地址空间是什么?3.2地址空间的设计/由来3.3空间区域划分3.4如何理解地址空间?3.5解释3.2的&#x1…

警惕.locked勒索病毒,您需要知道的预防和恢复方法。

尊敬的读者&#xff1a; 随着网络技术的进步&#xff0c;勒索病毒已经成为一种极具威胁性的网络犯罪工具之一。其中&#xff0c;.locked勒索病毒是一种采用高级加密算法的恶意软件&#xff0c;目的是加密用户的文件&#xff0c;并勒索赎金以提供解密密钥。本文将介绍如何应对被…

解决No Feign Client for loadBalancing defined,修改Maven依赖

Spring微服务报错&#xff1a; java.lang.IllegalStateException:FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-netf…

你不知道的库:库的种类,作用和加载方式

你不知道的库&#xff1a;库的种类&#xff0c;作用和加载方式 &#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客…

组件化——组件的实现原理

渲染器主要负责将虚拟 DOM 渲染为真实 DOM&#xff0c;我们只需要使用虚拟 DOM 来描述最终呈现的内容即可。但当我们编写比较复杂的页面时&#xff0c;用来描述页面结构的虚拟 DOM 的代码量会变得越来越多&#xff0c;或者说页面模板会变得越来越大。这时&#xff0c;我们就需要…

iperf3 网络测试

iperf3 测试网络的上下行带宽 下载地址 https://iperf.fr/iperf-download.php 开启服务器 开启客户端 常用命令 -c 代表客户端-s 代表服务端-u 代表 udp-r 代表数据方向是否反向 https://baijiahao.baidu.com/s?id1731514357681464971&wfrspider&forpc

C++学习 --queue

目录 1&#xff0c; 什么是queue 2&#xff0c; 创建queue 2-1&#xff0c; 标准数据类型 2-2&#xff0c; 自定义数据类型 2-3&#xff0c; 其他创建方式 3&#xff0c; 操作stack 3-1&#xff0c; 赋值 3-2&#xff0c; 插入元素(push) 3-3&#xff0c; 查询元素 3…

Python简直是万能的,这5大主要用途你一定要知道!

从2015开始国内就开始慢慢接触Python了&#xff0c;从16年开始Python就已经在国内的热度更高了&#xff0c;目前也可以算的上"全民Python"了。 众所周知小学生的教材里面已经有Python了&#xff0c;国家二级计算机证也需要学习Python了&#xff01; 因为Python简单…

编程语言发展史:布尔代数和机器语言

布尔代数是一种数学理论&#xff0c;用于描述和分析逻辑和布尔值的关系。它是由英国数学家George Boole在19世纪中期发明的&#xff0c;被认为是现代计算机科学的基础之一。布尔代数的发明使得逻辑运算可以被表示为代数运算&#xff0c;从而为计算机科学的发展奠定了基础。 在…

PTA 7-4 数列求和-加强版

7-4 数列求和-加强版 分数 20 全屏浏览题目 作者 DS课程组 单位 浙江大学 给定某数字A&#xff08;1≤A≤9&#xff09;以及非负整数N&#xff08;0≤N≤100000&#xff09;&#xff0c;求数列之和SAAAAAA⋯AA⋯A&#xff08;N个A&#xff09;。例如A1, N3时&#xff0c;S1…

Unity、UE和Godot的优劣对比

先占位。。。。。。 首先说Unity和UE这两家公司&#xff0c;是行业的两座灯塔&#xff0c;对整个游戏引擎的这个行业的发展具有这种指导性的这种作作用。这两个引擎我从2016年开始就一直在用&#xff0c;结合一下业内的共识&#xff0c;一般来说认为呢&#xff0c;Unity更擅长移…