一、简介
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播放器的特点、使用方式以及代码示例,让读者对这款强大的视频播放器有一个全方位的了解。