WebRTC 服務器之SRS服務器概述和環境搭建

1.概述

????????SRS(Simple Realtime Server)是一款高性能、跨平臺的流媒體服務器,支持多種協議,包括 RTMP、WebRTC、HLS、HTTP-FLV、SRT、MPEG-DASH 和 GB28181。本文介紹了 SRS,包括其用途、關鍵功能、架構和支持協議。SRS 旨在創建一個免費的開源社區,幫助開發人員構建高質量的流媒體和 RTC 平臺。它已獲得 MIT 許可,使其適用于商業和非商業用途。

目標和設計理念

SRS 旨在成為一種簡單、高效和實時的流媒體服務器,其基本功能側重于性能和穩定性。代碼庫遵循模塊化架構,將核心服務器框架、協議處理程序和流處理組件之間的關注點分開。

2.環境搭建

2.1 srs源碼下載

git clone https://github.com/ossrs/srs.git srs.4.0
cd srs.4.0
./configure --gb28181=on --debug=on && make

?2.2 srs服務啟動

srs.conf 配置示例

# 主配置文件 for SRS(Simple Real-time Messaging Server)
# @see full.conf for detail config.  # 詳見 full.conf 以獲取詳細配置# 監聽的 RTMP 推流端口,默認為 1935
listen              1935;# 最大連接數,限制同時可建立的連接數量
max_connections     1000;# 日志存儲方式,可選值為 file 或 console,默認為 file
# srs_log_tank        file;# 日志文件的路徑,默認為 ./objs/srs.log
#srs_log_file        ./objs/srs.log;# 開啟守護進程模式,使 SRS 在后臺運行
daemon              on;# srs提供輔助功能以html顯示,有srs控制臺,srs播放器 HTTP 服務器配置 
http_server {# 啟用 HTTP 服務器功能enabled         on;# HTTP 服務器監聽的端口,默認為 8080listen          8080;# 靜態文件的存儲目錄,默認為 ./objs/nginx/htmldir             ./objs/nginx/html;
}# srs推流信令api HTTP API 配置
http_api {# 啟用 HTTP API 功能enabled         on;# HTTP API 監聽的端口,默認為 1985listen          1985;
}# RTC 服務器配置
rtc_server {# 啟用 RTC 服務器功能enabled on;# RTC 服務器監聽的端口,注意是 UDP 協議,默認為 8000listen 8000;# 服務器提供服務的 IP 地址,由于 RTC 的特殊性,必須配置這個地址# 可以通過多種方式配置,如固定 IP、環境變量、自動獲取等 #  = * 自動獲取 = 127.0.0.1指定 =$CANDIDATE 以ifconfig網卡接口作為ipcandidate 117.72.13.81;
}# 默認虛擬主機配置
vhost __defaultVhost__ {# HLS 配置hls {# 啟用 HLS 功能enabled         on;}# HTTP-FLV 配置http_remux {# 啟用 HTTP-FLV 功能enabled     on;# 指定要轉換的流的掛載點,格式為 [vhost]/[app]/[stream].flvmount       [vhost]/[app]/[stream].flv;}# RTC 配置rtc {# 啟用 RTC 功能enabled     on;# 是否開啟 RTMP 轉 RTC,默認為 offrtmp_to_rtc on;# 是否開啟 RTC 轉 RTMP,默認為 offrtc_to_rtmp on;}
}
./objs/srs -c conf/srs.conf
tail -f ./objs/srs.log

2.2.1 使用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

2.3 效果演示

?2.3.1 推流至srs服務器

除了可以使用ffmpeg進行推流,也可以使用obs進行推流。

#使用ffmpeg文件推流遠程服務器
ffmpeg -re -i  time.flv  -vcodec copy -acodec copy  -f flv -y rtmp://117.72.13.86:1935/live/livestream

?2.3.1 srs服務器拉流

#1. srs播放器拉流訪問
http://localhost:8080/
http://localhost:1985/api/#2.ffplay拉流
ffplay rtmp://localhost:8080/live/livestream
ffplay http://localhost:8080/live/livestream.flv
ffplay http://localhost:8080/live/livestream.m3u8#3. 官方在線播放器
https://ossrs.net/srs.release/trunk/research/players/rtc_player.html?autostart=true&server=r.ossrs.net&vhost=r.ossrs.net

進入上文srs播放器播放即可

http://127.0.0.1:8080/players/srs_player.html?schema=http

官方學習地址

https://ossrs.net/lts/zh-cn/docs/v4/doc/http-api
https://ossrs.net/lts/zh-cn/blog/lets-do-h265-live-streaming
https://ossrs.net/lts/zh-cn/guide

學習資料分享

0voice · GitHub

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

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

相關文章

Dify - Embedding Rerank

注意:v100顯卡會出現不適配,不推薦使用 1. 安裝 Docker ubuntu 22.04 docker 安裝&使用_ubuntu22.04 安裝docker-CSDN博客 2. 安裝vllm pip install -U xformers torch torchvision torchaudio triton --index-url https://download.pytorch.org/w…

LeetCode:鏈表的中間結點

1、題目描述 給你單鏈表的頭結點 head ,請你找出并返回鏈表的中間結點。 如果有兩個中間結點,則返回第二個中間結點。 示例 1: 輸入:head [1,2,3,4,5] 輸出:[3,4,5] 解釋:鏈表只有一個中間結點&#xff…

LabVIEW溫控系統熱敏電阻滯后問題

在 LabVIEW 構建的溫控系統中,熱敏電阻因熱時間常數大(2 秒左右)產生的滯后效應,致使控溫出現超調與波動。在不更換傳感器的前提下,可從算法優化、硬件調整和系統設計等維度著手解決。 ? 一、算法優化? 1. 改進 PI…

技術犯規計入個人犯規嗎·棒球1號位

在棒球運動中,雖然沒有“技術犯規”這一特定術語,但存在多種違規行為或違反規則的情況,通常會導致判罰或處罰。以下是常見的違規行為及相關規則: 1. 投手違規(Balk) 定義:投手在壘上有跑壘員時…

Python核心技巧 類與實例:面向對象編程的基石

、核心概念圖解 🎯 類 vs 實例 類:對象的藍圖(如"汽車設計圖") 實例:類的具體實現(如"你的特斯拉Model 3") class MyClass: # 類聲明 count 0 # 類…

協程補充---viewModelScope 相關知識點

viewModelScope.launch 默認在 Dispatchers.Default 線程池執行Dispatchers.Default 是一個后臺線程池,專門用于 CPU 密集型任務如果需要在主線程執行,必須顯式指定 Dispatchers.Main remember 是 Compose 的狀態管理函數(queueMenus) 是依賴項&#xff…

linux stm32mp157 GIC-V2 中斷處理過程分析

/* ** 中斷觸發時,調用的 handle_arch_irq 入口地址。 ** 因為此時,掛接的就是 gic_handle_irq 函數!gic_handle_irq 是個全局函數指針, ** static void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) ** 它是Lin…

動態指令參數:根據組件狀態調整指令行為

🤍 前端開發工程師、技術日更博主、已過CET6 🍨 阿珊和她的貓_CSDN博客專家、23年度博客之星前端領域TOP1 🕠 牛客高級專題作者、打造專欄《前端面試必備》 、《2024面試高頻手撕題》、《前端求職突破計劃》 🍚 藍橋云課簽約作者、…

直方圖比較

目錄 1、直方圖比較的概念 2、直方圖比較的主要原因 3、典型應用場景 4、基礎直方圖比較 5、多通道直方圖比較 6、實時直方圖檢測 1、直方圖比較的概念 直方圖比較是通過數學方法計算兩個直方圖之間的相似度或差異度的技術。在計算機視覺中,直方圖是對圖像特征…

Windows11 VS code 安裝 Cline 調用 Github MCP 配置過程坑點匯總

背景 為了調研 MCP 在 windows 上如何使用本地的命令執行一些操作而實現自動化的過程,在 B 站視頻的指導下,進行相應填坑過程,最終運行起來,并實現 github 自動化編程并提交代碼的過程。 B 站 Cline 視頻演示 Cline Cline 是一…

kdump詳解

kdump 是 Linux 系統中的一種內核崩潰轉儲機制,用于在系統崩潰時將內存中的數據保存到磁盤上,以便后續分析系統崩潰的原因。以下是對 kdump 的詳細介紹: 1、工作原理 kdump 利用了 Linux 系統中的雙啟動機制。當系統啟動時,它會…

RGB三原色

本文來源 : 騰訊元寶 ??RGB三原色(紅綠藍)詳解?? RGB(Red, Green, Blue)是光學的三原色,通過不同比例的混合可以產生人眼可見的絕大多數顏色。它是現代顯示技術(如屏幕、投影儀&#xff09…

CSS兼容性:挑戰與策略

CSS兼容性:挑戰與策略 引言 在前端開發的廣闊領域中,跨瀏覽器兼容性無疑是最棘手且難以預測的挑戰之一。當我們精心設計的網頁在Chrome中完美呈現,卻在Safari中布局崩潰,或在Firefox中交互失效時,這種挫折感是每位前…

[ 設計模式 ] | 單例模式

單例模式是什么?哪兩種模式? 單例模式就是一個類型的對象,只有一個,比如說搜索引擎中的索引部分,360安全衛士的桌面懸浮球。 餓漢模式和懶漢模式:餓漢模式是線程安全的,懶漢模式不是線程安全的…

Notebook.ai 開源程序是一套工具,供作家、游戲設計師和角色扮演者創建宏偉的宇宙 - 以及其中的一切

?一、軟件介紹 文末提供程序和源碼下載 Notebook.ai 開源程序是一套工具,供作家、游戲設計師和角色扮演者創建宏偉的宇宙 - 以及其中的一切。 二、軟件特點 Notebook 是作家的規劃工具,用于創建從宇宙到角色、情節到單個項目的任何內容。通過瀏覽器、…

centos7.0無法安裝php8.2/8.3

在centos安裝php8.2報錯 configure: error: *** A compiler with support for C17 language features is required. 配置過程檢測到你的系統編譯器不支持 C17 語言特性,而 PHP 8.2 的編譯需要編譯器支持 C17 sudo yum update -y sudo yum install centos-releas…

Three.js + React 實戰系列 - 客戶評價區細解教程 Clients 組件?(回答式評價 + 評分星級)

對個人主頁設計和實現感興趣的朋友可以訂閱我的專欄哦!!謝謝大家!!! 在這篇博客中,我們將實現一個簡潔的 Hear from My Clients 客戶評價區域。這個區塊在個人主頁中可以突顯用戶體驗和專業度,幫…

Vim 命令從頭學習記錄

學習鏈接:eleon-vim基礎教程 Vim - 基礎翻屏操作 光標移動:hjkl 20j 向下移動20行,w 向后移動一個字符,b 向前移動一個字符。 Ctrl u 向上翻半頁 UP Ctrl d 向下翻半頁 Down Ctrl f 向下翻整頁 Forward Ctrl b 向上翻整頁 …

Linux系統編程--基礎指令(!!詳細講解+知識拓展)

第一講 基礎指令 ? 我們現如今自己使用的電腦大部分是用的都是windows或者macOS,并配合上由微軟和蘋果開發的圖形化界面,所以使用鼠標再屏幕上進行點擊即可完成許多任務。但是作為操作系統的學習者,在linux的基礎上不再使用圖形化界進行操作…

ADK 第四篇 Runner 執行器

智能體執行器 Runner,負責完成一次用戶需求的響應,是ADK中真正讓Agent運行起來的引擎,其核心功能和Agents SDK中的Runner類似,具體作用如下: 會話管理:自動讀取/寫入 SessionService,維護歷史信…