一、簡介
SRS (Simple Rtmp Server) 架構簡單,性能強大,並提供安全、可靠的服務。它是一個局部RTMP處理器實現,採用全異步事件驅動模型和協程多任務異步編程風格,適用於無數的客戶端接入,是一個業界良心免費的RTMP分發服務器,其中包括RTMP推流、直播等功能。
二、特點
1. SRS播放器支持Windows和Linux兩種操作系統,對硬件資源要求較低,僅要求CPU頻率高於2.0Ghz。
2. SRS內部採用的全異步事件驅動模型、協程多任務異步編程風格,具有性能強、架構簡單、易於調試等特點。
3. SRS播放器支持RTMP、HTTP-FLV協議、HTTP-TS協議、HLS等協議的直播點播。
4. SRS播放器支持GPU加速,支持多個視頻流的混合、切換和布局。
三、使用
1. 編寫SRS播放器的配置文件,配置文件包括通用參數、RTMP相關參數、HLS相關參數、FLV相關參數等。
#通用配置
listen 1935;
pid /var/run/nginx-rtmp.pid;
chunk_size 60000;
## RTMP配置
rtmp {
server {
listen 1935; #監聽端口
application myapp { #應用名稱
live on; #開啟直播
hls on; #開啟HLS
hls_path /mnt/hls/; #HLS路徑
hls_fragment 2s; #HLS切片時長
hls_playlist_length 10m; #HLS播單時長
allow publish all; #允許推流
#指定推流地址,這裡的推流地址是rtmp://localhost:1935/myapp/stream1
exec_push /usr/local/bin/ffplay -i rtmp://localhost:1935/myapp/stream1
}
}
}
## HTTP-FLV配置
http {
server {
listen 8080; #監聽端口
location / {
flv_live_start_index 0;
types {
application/octet-stream flv;
}
root /tmp; #本地目錄
}
}
}
## HLS配置
hls {
static off; #關閉HLS靜態化
hls_fragment 2s; #HLS切片時長
hls_playlist_length 60s; #HLS播單時長
hls_naming%V%F.ts; #HLS命名規則
hls_cleanup on; #啟用HLS定時清理
hls_cleanup_interval 5m; #HLS清理間隔
hls_cleanup_threshold 3600; #HLS清理時長閾值
}
2. 編寫SRS播放器業務邏輯。
3. 運行SRS播放器。
/etc/init.d/srs start
四、附SRS播放器代碼示例
1. RTMP推流示例代碼:
<script type="text/javascript">
var player = new SrsPlayer({
container: document.getElementById('video-player'),
url: 'rtmp://localhost:1935/live/stream1',
type: 'rtmp'
});
player.play();
</script>
2. HTTP-FLV示例代碼:
<script type="text/javascript">
var player = new SrsPlayer({
container: document.getElementById('http-flv-player'),
url: 'http://localhost:8080/live/stream1.flv',
type: 'http-flv'
});
player.play();
</script>
3. HLS示例代碼:
<script type="text/javascript">
var player = new SrsPlayer({
container: document.getElementById('hls-player'),
url: 'http://localhost/hls/stream1/index.m3u8',
type: 'hls'
});
player.play();
</script>
五、總結
本文詳細介紹了SRS播放器的特點、使用方式以及代碼示例,讓讀者對這款強大的視頻播放器有一個全方位的了解。
原創文章,作者:RGFSK,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/371250.html