前言
浏览器拉取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
本文介绍了在没有HTTPS证书的情况下,如何使用VSCode远程调试SRS服务器的RTMP流转RTC流。通过编译SRS,配置launch.json文件进行调试,并利用VSCode的端口转发功能,可以本地通过HTTP协议进行SDP交换,实现浏览器拉取WebRTC流,而无需验证证书。此外,提到了使用ffmpeg推流到远端服务器的示例。
838

被折叠的 条评论
为什么被折叠?



