srs的webrtc信令分析

關于webrtc的流信令只有四個

/rtc/v1/publish/,這是推流接口,是推流客戶端跟SRS交換SDP的接口
/rtc/v1/play/,這是拉流接口,是拉流客戶端跟SRS交換SDP的接口
/rtc/v1/whip/,這也是推流接口,作用是也是交換SDP,只是采用的是WebRTC 的標準信令
/rtc/v1/whip-play/,這是拉流接口,作用是也是交換SDP,只是采用的是WebRTC 的標準信令

POST /rtc/v1/publish/
Body in JSON:

{"api": "https://d.ossrs.net/rtc/v1/publish/""streamurl": "webrtc://d.ossrs.net/live/3abd9f34","sdp": "v=0\r\n......\r\na=ssrc:2064016335 label:c8243ce9-ace5-4d17-9184-41a2543101b5\r\n"
}

返回如下

{"code": 0"sdp": "v=0\r\n......\r\na=candidate:1 1 udp 2130706431 172.18.0.4 8000 typ host generation 0\r\n""sessionid": "186tj710:hMub"
}

這個是srs自定義的信令,更多詳細見上文給到的官網
關于whip和whep,webrtc官方沒有指定標準信令,但這個幾乎快成為公認的webrtc信令了,obs最新版也開始支持whip信令推流webrtc了。
什么是whip
全稱: WebRTC-HTTP ingestion protocol (WHIP).
rfc地址: rfc-draft-murillo-whip-00

webrtc publish/
方法: http post
uri: http://hostname:hostport/publish/roomId/uid
http post body: offerSdp
返回:
http body: answerSdp
這個srs官網沒有給出,因為他是公開的標準,詳細見:whip和whep

除此之外srs還有很多其他特別好用的信令,可以用curl命令執行這些信令作測試。
1.查看當前有多少人在推流拉流

GET http://yourip:1985/api/v1/streams

“clients”:2共有2個客戶端在推拉流,“send_bytes”,“recv_bytes”,srs總共收到了多少流和推出了多少流。publish,推流客戶端的id等。

{"code":0,"server":"vid-k73qd86","service":"d131vgjy","pid":"14885",
"streams":[{"id":"vid-31x2o91",
"name":"livestreamShow","vhost":"vid-5735q8a",
"app":"live",
"tcUrl":"webrtc://118.190.201.242:1990/live",
"url":"/live/livestreamShow","live_ms":1700663886254,
"clients":2,"frames":0,
"send_bytes":86035991,"recv_bytes":70223513,
"kbps":{"recv_30s":279,"send_30s":335},
"publish":{"active":true,"cid":"980tr2m6"},
"video":null,"audio":null}]}

2.可以看到獲得了這個2個客戶端詳細的信息,他們的ip,name,id等

GET http://yourip:1985/api/v1/clients
{"code":0,"server":"vid-k73qd86","service":"d131vgjy","pid":"14885","clients":[{"id":"980tr2m6","vhost":"vid-5735q8a","stream":"vid-31x2o91",
"ip":"111.32.97.245","pageUrl":"","swfUrl":"","tcUrl":"webrtc://118.190.201.242:1990/live",
"url":"/live/livestreamShow","name":"livestreamShow","type":"rtc-publish",
"publish":true,"alive":2355.50,"send_bytes":1607988,"recv_bytes":83824825,"kbps":{"recv_30s":263,"send_30s":5}},{"id":"flmxmk29","vhost":"vid-5735q8a","stream":"vid-31x2o91",
"ip":"111.32.97.245","pageUrl":"","swfUrl":"","tcUrl":"webrtc://118.190.201.242:1990/live",
"url":"/live/livestreamShow","name":"livestreamShow","type":"rtc-play",
"publish":false,"alive":2393.43,"send_bytes":102710561,"recv_bytes":2065048,"kbps":{"recv_30s":3,"send_30s":167}}]}

3.包括踢掉一些用戶:
DELETE /api/v1/clients/{id}
srs的控制臺踢人的按鈕,就是使用的這個信令。
在這里插入圖片描述4.以下兩條跟上面的功能相同,在/clients/id,查找特定id的信息

curl -v -X GET http://192.168.1.170:1985/api/v1/clients/426 && echo ""
curl -v -X DELETE http://192.168.1.170:1985/api/v1/clients/426 && echo ""

curl -v -X GET http://118.190.201.242:1985/api/v1/vhosts/ && echo “”

{"code":0,"server":"vid-k73qd86","service":"d131vgjy","pid":"14885",
"vhosts":[{"id":"vid-5735q8a","name":"__defaultVhost__","enabled":true,"clients":2,
"streams":1,"send_bytes":246360125,"recv_bytes":223127278,
"kbps":{"recv_30s":256,"send_30s":296},"hls":{"enabled":false}}]}

5.SRS提供系統的摘要信息接口,譬如當前的內存、CPU、網絡、負載使用率。

GET http://118.190.201.242:1985/api/v1/summaries/ && echo ""
{"code":0,"server":"vid-k73qd86","service":"d131vgjy","pid":"14885","urls":{"versions":"the version of SRS","summaries":"the summary(pid, argv, pwd, cpu, mem) of SRS","rusages":"the rusage of SRS","self_proc_stats":"the self process stats","system_proc_stats":"the system process stats","meminfos":"the meminfo of system","authors":"the license, copyright, authors and contributors","features":"the supported features of SRS","requests":"the request itself, for http debug","vhosts":"manage all vhosts or specified vhost","streams":"manage all streams or specified stream","clients":"manage all clients or specified client, default query top 10 clients","raw":"raw api for srs, support CUID srs for instance the config","clusters":"origin cluster server API","perf":"System performance stat","tcmalloc":"tcmalloc api with params ?page=summary|api"},"tests":{"requests":"show the request info","errors":"always return an error 100","redirects":"always redirect to /api/v1/test/errors","[vhost]":"http vhost for http://error.srs.com:1985/api/v1/tests/errors"}}

srs全部的api如下:
地址是:http://192.168.1.170:1985/api/v1,主要包含的子api有:

API	     Example	 Description
server	4481	服務器標識
versions	/api/v1/versions	獲取服務器版本信息
summaries	/api/v1/summaries	獲取服務器的摘要信息
rusages	/api/v1/rusages	獲取服務器資源使用信息
self_proc_stats	/api/v1/self_proc_stats	獲取服務器進程信息
system_proc_stats	/api/v1/system_proc_stats	獲取服務器所有進程情況
meminfos	/api/v1/meminfos	獲取服務器內存使用情況
authors	/api/v1/authors	獲取作者、版權和License信息
features	/api/v1/features	獲取系統支持的功能列表
requests	/api/v1/requests	獲取請求的信息,即當前發起的請求的詳細信息
vhosts	/api/v1/vhosts	獲取服務器上的vhosts信息
streams	/api/v1/streams	獲取服務器的streams信息
clients	/api/v1/clients	獲取服務器的clients信息,默認獲取前10個
configs	/api/v1/configs	CUID配置,RAW API
publish	/rtc/v1/publish/	WebRTC推流的API
play	/rtc/v1/play/	WebRTC播放流的API

詳細見官網:
http-api 信令https://ossrs.net/lts/zh-cn/docs/v4/doc/http-api

srs官網還有個在線的curl界面類型的工具
http://ossrs.net/srs.release/http-rest/
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161841.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161841.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161841.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#開發的OpenRA游戲之屬性RenderSprites(8)

C#開發的OpenRA游戲之屬性RenderSprites(8) 本文開始學習RenderSprites屬性,這個屬性是跟渲染有關的,因此它就攝及顏色相關的內容,所以我們先來學習一下調色板,這是舊游戲的圖片文件保存的格式,如果放在現代來看,不會再采用這種方法,畢竟現在存儲空間變大,便宜了,并…

JDBC 操作 SQL Server 時如何傳入列表參數

本文是作為將要對 PostgreSQL 的 in, any() 操作的一個鋪墊,也是對先前用 JDBC 操作 SQL Server 的溫習。以此記錄一下用 JDBC 查詢 SQL Server 時如何傳遞一個列表參數。比如想像一下查詢語句 select * from users where id in (?) 我們是否能給這里的問題參數傳遞…

idea編譯問題導致接口調用不通

問題背景: 1.idea版本2021,springboot,父子maven項目,創建了一個新的model。啟動之后,調試controller接口,接口一直報404。 問題分析: 1.查看編譯后的文件,發現java代碼一直沒編譯…

Vue3使用dataV報錯問題解決

DataV官網:https://datav-vue3.jiaminghi.com/guide/ vue2中是沒有問題的,這是第一次在vue3中使用發現的報錯問題 報錯問題 首先安裝: pnpm add dataview/datav-vue3 1. 全局注冊報錯 然后main.ts全局注冊 import { createApp } f…

html網站-關于發展歷程的案例

一、案例一 1.效果圖&#xff1a; 2.代碼&#xff1a; 所用到的文件自行在官網下載&#xff0c;也可在git上拉取。 <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><meta…

USB驅動開發基礎

USB標準 USB1.0&#xff0c; 1996&#xff0c;低速1.5Mbps和高速12Mbps&#xff0c;USB1.1 iMac G3&#xff0c;Type A和Type B接口USB 2.0 2000&#xff0c; 480Mpbs&#xff0c;Type A/B/C接口、Micro A/BUSB 3.0 5Gbps, 隨著USB 3.2命名規定&#xff0c;現在也叫USB 3.2 Ge…

Nginx模塊開發之http過濾器filter

文章目錄 什么是過濾模塊Nginx相關數據結構介紹ngx_module_t的數據結構ngx_http_module_t數據結構ngx_command_s數據結構 相關宏定義filter&#xff08;過濾器&#xff09;實現Nginx模塊開發流程Nginx 模塊執行具體實現流程create_loc_confmerge_loc_confpostconfiguration修改…

使用OkHttp庫爬取百度云視頻詳細步驟

目錄 摘要 一、OkHttp庫簡介 二、爬蟲基本概念 三、使用OkHttp庫爬取百度云視頻 1、發送HTTP請求 2、處理響應 3、下載文件 四、可能遇到的問題及解決方案 五、注意事項 總結與建議 摘要 本文將詳細介紹如何使用OkHttp庫爬取百度云視頻。文章首先簡要介紹OkHttp庫和…

【collections】Python中的OrderDict

【collections】Python中的OrderDict 文章目錄 【collections】Python中的OrderDict1. 什么是OrderedDict2. Toy Code 1. 什么是OrderedDict 其實很簡單OrderedDict是Python中一個字典dict的變體&#xff0c;它可以按照元素添加的順序來保持鍵值對&#xff08;key-value pair&…

GPIO模式詳解:推挽/開漏/浮空/上拉/下拉/施密特(遲滯)輸入

GPIO(General Purpose Input Output)可用于執行數字輸入或輸出功能。典型的應用包括從/向模擬或數字傳感器/設備讀寫數值、驅動LED、為I2C通信驅動時鐘、生成外部組件的觸發、發出中斷等。 文章目錄 1 GPIO簡介2 輸出模式2.1 推挽輸出2.2 開漏輸出 3 輸入模式3.1 高阻態(浮空)、…

推薦一款適合做智慧旅游的前端模板

目錄 前言 一、功能介紹 二、前端技術介紹 三、功能及界面設計介紹 1、數據概覽 2、車輛監控 3、地圖界面 4、其它功能 四、擴展說明 總結 前言 智慧旅游是一種全新的旅游業務模式&#xff0c;它充分利用先進的信息技術&#xff0c;提升旅游體驗&#xff0c;優化旅游管…

【Axure高保真原型】樹形表格

今天和大家分享樹形表格的原型模板&#xff0c;點擊樹的箭頭可以打開或者收起子節點&#xff0c;點擊表格內容&#xff0c;可以選中該行內容實現高亮變色效果&#xff0c;樹形表格是通過中繼器制作的&#xff0c;使用簡單&#xff0c;只需要按要求填寫中繼器表格即可&#xff0…

2023亞太杯數學建模思路 - 案例:粒子群算法

文章目錄 1 什么是粒子群算法&#xff1f;2 舉個例子3 還是一個例子算法流程算法實現建模資料 # 0 賽題思路 &#xff08;賽題出來以后第一時間在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是粒子群算法&#xff1f; 粒子群算法&#xff08;Pa…

安防監控視頻融合平臺EasyCVR定制化頁面開發

安防監控EasyCVR視頻匯聚平臺基于云邊端智能協同&#xff0c;支持海量視頻的輕量化接入與匯聚、轉碼與處理、全網智能分發、視頻集中存儲等。安防視頻平臺EasyCVR拓展性強&#xff0c;視頻能力豐富&#xff0c;具體可實現視頻監控直播、視頻輪播、視頻錄像、云存儲、回放與檢索…

ConditionObject介紹(二)

1. Condition的signal方法分析 分為了幾個部分&#xff1a; ● 確保執行signal方法的是持有鎖的線程 ● 脫離Condition的隊列 ● 將Node狀態從-2改為0 ● 將Node添加到AQS隊列 ● 為了避免當前Node無法在AQS隊列正常喚醒做了一些判斷和操作 // 線程掛起后&#xff0c;可以基于…

Centos設置nginx開機自啟動設置

Centos設置nginx開機自啟動設置 要設置CentOS中的Nginx開機自啟動&#xff0c;可以按照以下步驟進行操作&#xff1a; 首先&#xff0c;登錄到CentOS服務器上&#xff0c;并以root用戶或具有sudo權限的用戶身份執行以下命令來安裝Nginx&#xff08;如果尚未安裝&#xff09;&a…

字符集合!!!

字符集合&#xff01;&#xff01;&#xff01; 描述 輸入一個字符串&#xff0c;求出該字符串包含的字符集合&#xff0c;按照字母輸入的順序輸出。 數據范圍&#xff1a;輸入的字符串長度滿足 1 \le n \le 100 \1≤n≤100 &#xff0c;且只包含大小寫字母&#xff0c;區分大小…

中國信息通信研究院產業與規劃研究所校招一面、二面內容

本文介紹2024屆秋招中&#xff0c;中國信息通信研究院的數字孿生智慧城市研究員崗位一面、二面的面試基本情況、提問問題等。 10月投遞了中國信息通信研究院的數字孿生智慧城市研究員崗位&#xff0c;所在部門為數字孿生與城市數字化研究部。目前完成了一面與二面&#xff0c;在…

Django 模型和Admin站點管理(三)

一、定義模型 &#xff08;1&#xff09; 創建模型類&#xff0c;必須要繼承自 models.Model from django.db import models# Create your models here. #設計數據庫 #創建模型 class UserModel(models.Model):namemodels.CharField(max_length30) #對應于SQL name varchar(30…

K8s實戰RestartPoliy策略

一、默認策略為Always cmd.yaml apiVersion: v1 kind: Pod metadata:name: myapp-pod labels:app: myapp spec: containers:- name: myapp-container image: busyboxcommand: [sh, -c, echo OK!&& sleep 60]首先我們根據這個yaml創建一個測試的pod 執行命令 kubec…