SRS WebRTC 入門

什么是 SRS WebRTC?

SRS (Simple Realtime Server) 是一個支持 WebRTC 流媒體的開源媒體服務器。它允許你建立基于 WebRTC 的低延遲直播和實時通信應用。

快速開始

1. 安裝 SRS

bash

# 使用 Docker 快速安裝
docker run --rm -it -p 1935:1935 -p 1985:1985 -p 8080:8080 \-p 8000:8000/udp -p 10080:10080/udp ossrs/srs:5 \./objs/srs -c conf/rtc.conf

或者從源碼編譯:

bash

git clone https://github.com/ossrs/srs
cd srs/trunk
./configure --with-ffmpeg --with-ssl --with-hls --with-rtc \--with-http-callback --with-http-api --with-http-server
make

2. 基本配置 (conf/rtc.conf)

nginx

listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;rtc_server {enabled on;listen 8000; # UDP端口candidate $CANDIDATE; # 你的服務器IP或域名
}http_api {enabled on;listen 1985;
}http_server {enabled on;listen 8080;dir ./objs/nginx/html;
}

3. 啟動 SRS

bash

./objs/srs -c conf/rtc.conf

?

WebRTC 推流與播放

推流 (Publisher)

  1. 使用 WebRTC 推流 URL 格式:

    text

    webrtc://your-server-ip/live/streamid
  2. 可以使用官方 Web 演示頁面:

    text

    http://your-server-ip:8080/players/rtc_publisher.html

播放 (Player)

  1. WebRTC 播放 URL 格式:

    text

    webrtc://your-server-ip/live/streamid
  2. 官方 Web 播放演示:

    text

    http://your-server-ip:8080/players/rtc_player.html
     

進階配置

1. 設置 TURN 服務器 (穿越 NAT)

nginx

rtc_server {# ... 其他配置 ...turn_server {enabled on;listen 3478;# 必須配置域名或IPcandidate $CANDIDATE;realm ossrs.net;credential ossrs;}
}

2. 與其它協議轉換

SRS 支持 WebRTC 與其他協議互轉:

  • WebRTC → RTMP

  • WebRTC → HLS

  • RTMP → WebRTC

常見問題

  1. ICE 連接失敗:

    • 確保配置了正確的?candidate?IP

    • 檢查防火墻開放了 UDP 端口 (默認 8000)

  2. 延遲高:

    • 確保使用 WebRTC 而不是 HLS 或 HTTP-FLV

    • 檢查網絡狀況

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

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

相關文章

從手機隨拍到標準掃描件:AI如何智能校正證件照片(Python+OpenCV)

目錄 一、概述二、解決方案2.1 核心挑戰:AI眼中的“三座大山”2.2 設計思路:給AI一個“智能提示”2.3 實現流程:四步搞定 三、代碼實現3.1 依賴庫3.2 代碼 四、結語 一、概述 在當今的線上業務中,要求用戶上傳身份證、駕駛證等證…

基于OpenCV圖像分割與PyTorch的增強圖像分類方案

在圖像分類任務中,背景噪聲和復雜場景常常會對分類準確率產生負面影響。為了應對這一挑戰,本文介紹了一種結合OpenCV圖像分割與PyTorch深度學習框架的增強圖像分類方案。通過先對圖像進行分割提取感興趣區域(Region of Interest,R…

華為云對象存儲OBS 支持安卓/iOS/鴻蒙UTS組件

華為云對象存儲OBS 支持安卓/iOS/鴻蒙UTS組件 介紹使用前須知vue代碼調用示例權限說明API調用說明初始化配置(openClient)創建桶(createBucket)列舉桶(listBuckets)刪除桶(deleteBucket&#xf…

Buildroot 2025.05 中文手冊【AI高質量翻譯】

譯文在 Github 倉庫 和 Gitee 倉庫 保持最新,其它平臺發的文檔可能不會與之同步。 希望能夠共同維護這個 倉庫的 Buildroot 手冊 中文譯文,幫助更多人真正深入學習理解,更好的工作、生活和創造。 關于 AI 提示詞 以及 更多工具 的收集&#…

采用ArcGIS10.8.2 進行插值圖繪制

一、最終成果圖展示 二、軟件下載 鏈接: 百度網盤 請輸入提取碼 密碼:azay 三、軟件安裝 1、在安裝之前需要關閉電腦的防火墻及殺毒軟件 設置-隱私和安全性-Windows安全中心-防火墻和網絡保護 2、軟件解壓 (1)【ArcGIS_Desktop_1082_180......】“以管理員身份運行”…

Python網安-zip文件暴力破解(僅供學習)

目錄 源碼在這里 需要的模塊 準備一個密碼本和需要破解的ZIP文件 一行一行地從密碼文件中讀取每個密碼。 核心部分 注意,需要修改上段代碼注釋里的這段具有編碼問題的代碼: 源碼在這里 https://github.com/Wist-fully/Attack/tree/cracker 需要的…

如何讓ChatGPT模仿人類寫作,降低AIGC率?

在AI技術日益普及的當下,ChatGPT 等大語言模型已成為許多學術與寫作任務中的得力助手。然而,學境思源,隨著各類“AI檢測系統”的出現,一鍵生成論文初稿!我們也遇到一個新的問題:如何讓AI寫作看起來不像AI寫…

科大訊飛2025AI開發者大賽-用戶新增賽道時間規則解析

根據訓練集中的時間規則,對測試集中的數據推斷用戶標簽(新用戶或老用戶)。 時間規則如下: 針對訓練集和測試集中都存在的did: 找到在訓練集中標記為新用戶最晚的時間點,則測試集中對應did的數據在此時間點前全部為新用…

.NET C# async/定時任務的異步線程池調度方案最大線程數? = 處理器核心數 × 250

關于.NET中Threading.Timer的線程機制,結合線程池特性和異步協作原理分析如下: 一、線程復用機制 ?共享進程級線程池? Threading.Timer的回調任務?不會每次新建線程?,而是提交到.NET進程全局線程池統一調度,該線程池與async/…

Redis 高可用分片集群:主從模式與哨兵機制詳解

一、為何需要分片集群? 在討論具體方案之前,我們先明確分片集群要解決的問題: 單節點瓶頸:無論是內存容量還是處理能力(QPS),單個 Redis 實例都有物理上限。高可用性需求:單點故障…

Qt readyRead信號避坑:不產生readyRead信號的解決方法

Qt readyRead信號避坑:不產生readyRead信號的解決方法 引言一、QSerialport的readyRead1.1 版本問題1.2 緩存問題1.3 阻塞問題 二、Q(Tcp)Socket的readyRead2.1 阻塞問題2.2 運行一段時間,突然不發信號2.3 和具體數據有關? 引言 目前沒遇到相…

大事件項目記錄10-文章分類接口開發-更新文章分類

四、更新文章分類。 CategoryController.java: PutMappingpublic Result update(RequestBody Validated Category category){categoryService.update(category);return Result.success();} CategoryService: //更新分類void update(Category category); …

AI接口使用–阿里云百煉

原文地址:AI接口使用–阿里云百煉 – 無敵牛 歡迎參觀我的個人博客:無敵牛 – 技術/著作/典籍/分享等 最近開發了一個抖音AI起名小程序,已經在抖音上線了,歡迎大家來使用。其中用到了 AI文本生成 功能,我用的是 阿里云…

大模型之提示詞工程入門——解鎖與AI高效溝通的“鑰匙”

一、什么是提示詞工程? 提示詞工程(Prompt Engineering) 是一門通過設計、優化輸入文本(Prompt)來引導大語言模型(LLM)生成高質量輸出的技術。它不僅是AI應用的核心環節,也是連接人…

智慧城市云計算大數據中心項目設計方案

第1章 總體方案設計 1.1 概述 1.2 建設目標 1.3 建設內容 1.3.1 標準規范體系編制 1.3.2 基礎設施平臺建設 1.3.3 數據資源平臺建設 1.3.4 應用支撐平臺建設 1.3.5 云管平臺運維建設 1.3.6 應用上云遷移實施 1.3.7 信息安全保障建設 1.3.8 容災備份系統建設 1.4 設…

OpenMP并行加速學習筆記2025.6.27

在OpenMP并行加速中,線程數(如32、16、8)的選擇需結合硬件核心數、任務類型(計算密集型或I/O密集型)、負載均衡策略及線程開銷綜合判斷。以下為具體差異分析與性能提升對比: 一、核心影響因素分析 1. 硬件…

對象回調和函數回調

1.對象回調: 對象回調原始寫法,A調B B又回頭調A package com.ldj.demo.controller;/*** User: ldj* Date: 2025/6/28* Time: 12:22* Description: 回調函數的理解 對象回調*/ public class Tr {public static void main(String[] args) {A a new A();…

Python實例題:Web 爬蟲與數據可視化

目錄 Python實例題 題目 要求: 解題思路: 代碼實現: Python實例題 題目 Web 爬蟲與數據可視化 要求: 編寫一個爬蟲,從豆瓣電影 Top250 頁面(豆瓣電影 Top 250)抓取電影名稱、評分、導演…

關于ubuntu 20.04系統安裝分區和重復登錄無法加載桌面的問題解決

1. 想要安裝Ubuntu 20.04版本,有兩塊硬盤,所以在分區列表設置的格式為如下: 其中各個/boot 、/home的格式為如下(Ubuntu20.04分區方案_ubuntu20.04手動分區-CSDN博客) 2.安裝完死活輸完密碼進不去主界面 必須禁用Nou…

26考研|數學分析:隱函數定理及其應用

前言 本章主要圍繞隱函數、隱含數組的計算展開,本章的核心還是在于計算的運用,在理論層面要掌握隱函數(隱函數組)存在性定理,在計算方面,要掌握隱函數、隱函數組的計算方法,此外,本…