您的位置:

SRS播放器的全面解析

一、简介

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