SRS流媒体服务器之RTC播放环境搭建

环境概述

srs版本

commit 44f0c36b61bc7c3a1d51cb60be0ec184c840f09d
Author: winlin <winlin@vip.126.com>
Date:   Wed Aug 2 10:34:41 2023 +0800

    Release v4.0-r5, 4.0 release5, v4.0.271, 145574 lines.

rtc.conf

# WebRTC streaming config for SRS.
# @see full.conf for detail config.

listen              1935;
max_connections     1000;
daemon              off;
srs_log_tank        console;

http_server {
    enabled         on;
    listen          8080;
    dir             ./objs/nginx/html;
}

http_api {
    enabled         on;
    listen          1985;
}
stats {
    network         0;
}
rtc_server {
    enabled on;
    listen 8000; # UDP port
    # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#config-candidate
    candidate $CANDIDATE;
}

vhost __defaultVhost__ {
    rtc {
        enabled     on;
        # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtmp-to-rtc
        rtmp_to_rtc on;
        # @see https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#rtc-to-rtmp
        rtc_to_rtmp on;
    }
    http_remux {
        enabled     on;
        mount       [vhost]/[app]/[stream].flv;
    }
    play {
        mw_latency 100;
        mw_msgs 4;
        queue_length 10;
        send_min_interval 10.0;
        reduce_sequence_header on;
    }

}

srs内置推流文件

srs源代码是自带测试文件的,可使用ffmpeg进行推流尝试。

ffmpeg -re -i ./doc/source.200kbps.768x320.flv -c copy -f flv rtmp://192.168.126.129/live/livestream

RTC播放器问题

由于是早期版本,rtc和rtmp播放地址不同。

rtmp播放地址:

http://192.168.126.129:8080/players/srs_player.html
http://192.168.126.129:8080/players/rtc_publisher.html

webrtc拉流播放地址:

http://192.168.126.129:8080/players/rtc_player.html

webrtc拉流播放问题

 在使⽤Chrome浏览器推流时会报:TypeError: Cannot read property 'getUserMedia' of undefined 错误,这个错误主要是https证书问题。

解决办法:先把chrome完全退出,右击桌⾯上chrome的快捷键,点击属性,在⽬标⼀栏添加如下内容, 记着有个英⽂空格,IP换成⾃⼰的。

"C:\Program Files\Google\Chrome\Application\chrome.exe" --ignore-certificate-errors --allow-running-insecure-content --unsafely-treat-insecure-origin-as-secure=http://192.168.126.129:8080"

vlc如何播放?

问题:由于VLC播放器原生不支持WebRTC协议webrtc://协议头),直接使用VLC播放SRS的WebRTC流会遇到兼容性问题。 

http_server {
    enabled on;
    listen 8080;  # HTTP服务端口
}

vhost __defaultVhost__ {
    http_remux {
        enabled on;   # 启用HTTP-FLV/HLS
        mount [vhost]/[app]/[stream].flv;
    }
}

SRS支持将WebRTC流自动转换为HTTP-FLVHLS协议,可通过VLC直接播放转换后的地址。 

获取可播放地址
WebRTC流地址 webrtc://192.168.126.129/live/livestream 
对应以下协议地址:
HTTP-FLV: http://192.168.126.129:8080/live/livestream.flv
HLS: http://192.168.126.129:8080/live/livestream.m3u8

学习资料分享

40voice · GitHub

### 如何搭建SRS流媒体服务器 #### 1. 基本概念与环境准备 SRS(Simple-RTMP-Server)是一个高效的实时媒体服务器,支持多种协议如RTMP、WebRTC、HLS等。为了成功搭建SRS流媒体服务器,需要先准备好Linux运行环境并安装必要的依赖工具[^1]。 以下是具体的准备工作: - 确保操作系统为Linux发行版(推荐Ubuntu或CentOS)。 - 安装Git用于克隆SRS仓库以及GCC/G++编译器来构建项目。 ```bash sudo apt update && sudo apt install -y git build-essential libssl-dev cmake ``` #### 2. 获取SRS源代码 通过官方GitHub仓库获取最新版本的SRS源码: ```bash git clone https://github.com/ossrs/srs.git srs.6.0 cd srs.6.0/trunk ``` 此命令会将SRS项目的主分支克隆至当前目录下的`srs.6.0`文件夹中[^4]。 #### 3. 编译SRS 进入SRS根目录后执行如下脚本来完成配置和编译过程: ```bash ./configure --with-openssl=yes --rtc=on make -j$(nproc) ``` 这里启用了OpenSSL库的支持以便于HTTPS功能正常工作,并开启了WebRTC模块(`--rtc=on`)以提供更低延迟的服务选项[^2]。 #### 4. 配置SRS 编辑位于conf目录中的srs.conf主要配置文件调整参数满足实际需求: ```ini listen { port = 1935; } vhost __defaultVhost__ { http_remux { enabled on; # 开启HTTP-FLV/HLS服务. mount [stream]; # 推送过来的流名称作为路径的一部分. } rtc { enabled true; # 启用WebRTC传输方式. } } ``` 以上片段展示了如何启用HTTP-FLV重封装及WebRTC特性[^3]。 #### 5. 运行SRS服务端程序 启动刚刚编译好的可执行文件即可让SRS开始监听指定端口等待客户端连接请求: ```bash ./objs/srs -c conf/srs.conf ``` 此时如果一切顺利的话,在终端应该能看到一些日志输出表明服务器已经就绪可以接受来自外部世界的访问尝试了[^3]。 #### 6. 测试推流与播放 利用OBS Studio或其他第三方软件向地址`rtmp://<your_server_ip>:1935/live/stream_key`发起推送操作;与此同时打开浏览器输入链接`http://<your_server_ip>/live/stream_key.flv`就能即时查看效果啦! --- ### 注意事项 对于生产环境中部署还需要考虑安全性加固措施比如防火墙规则设定、密钥认证机制引入等方面的内容未在此详述,请参照官方文档进一步学习深入知识点[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值