前言
浏览器拉取webrtc流要求https协议,本文介绍一种调试方法在没有证书的情况下调试SRS的RTMP流转RTC流,以及浏览器拉取WebRTC流。
首先,参考文章VSCode远程云服务器开发部署VSCode远程调试服务环境
编译与调试
- 编译参考SRS官方文档编译即可SRS4.0编译文档
调试
VSCode
中增加launch.json
文件,配置内容如下,这里我们使用rtmp2rtc.conf
配置文件
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/trunk/objs/srs",
"args": [
"-c",
"./conf/rtmp2rtc.conf"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}/trunk",
"environment":[],
"enternalConsole": false,
"MIMode" : "gdb",
"setupCommands":[
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
运行
VSCode
菜单栏 -->运行–>启动调试,开始调试
- 启动调试后,在
VSCode
的命令输出窗口可以看到 端口 项,VSCode
会将远端服务器监听的端口自动转发到本地,从端口窗口我们可以看到,SRS
监听了1935、1985、8000、8080
端口。1935
端口:rtmp
服务的监听端口1985
端口:http_api
的监听端口,提供SDP
交换能力8080
端口:web
服务的端口,提供一些H5
页面(播放器页面)8000
端口:udp
监听端口,收发rtp、rtcp
包
测试
- 推流
本地通过ffmpeg直接rtmp流到远端服务器
ffmpeg -re -stream_loop -1 -i .\video_lowbitrate.mp4 -c copy -f flv rtmp://your_server_ip/live/livestream
- 拉流
- 由于
VSCode
将远端服务器监听端口自动转发到了本地,所有我们可以用localhost
打开SRS
提供的RTC Player
,本地RTC Player地址,从而使用http协议进行SDP交换,无需验证证书。 - 由于云主机带宽有限,rtmp推流的本地文件经过压缩。
- 由于
注意
rtmp2rtc.conf
配置文件中的condidate
需要配置为云主机的公网ip