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