100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Qt6.5.1+WebRTC学习笔记(十二)环境搭建流媒体服务器(ubuntu22.04+SRS)

Qt6.5.1+WebRTC学习笔记(十二)环境搭建流媒体服务器(ubuntu22.04+SRS)

时间:2023-12-19 09:54:08

相关推荐

Qt6.5.1+WebRTC学习笔记(十二)环境搭建流媒体服务器(ubuntu22.04+SRS)

前言

若只是实现一对一通信,仅使用webrtc就足够了。但有时间需要进行多个人的直播会议,当人比较多时,建议使用一个流媒体服务器,笔者使用的是SRS。

这个开源项目资料比较全,笔者仅在此记录下搭建过程

一、准备

1.操作系统ubuntu22.0464位 x86架构(建议更新到最新)

2.安装编译器相关,执行如下命令

sudo apt-get install build-essential

二、获取源码并编译

源码下载

git clone -b develop /ossrs/srs.git

注意: 建议使用国内的代码库,下载速度快一些

切换到srs/trunk目录,并编译

cd srs/trunk./configure --ffmpeg-opus=onmake

注:音频编码需要支持opus,所以记得需要添加ffmpeg-opus选项

若是需要播放网络摄像头的画面,建议使用如下编译选项

cd srs/trunk./configure --gb28181=on --ffmpeg-opus=onmake

注:摄像头推流建议使用gb28181,视频选择x264编码,音频选择AAC编译

三、 设置配置文件,并启动服务

编译完成后,在conf目录下有多个配置文件,即可以直接使用,也可以修改或创建新的配置文件

笔者为方便测试,参考https.rtc.conf和push.gb28181.conf两个配置,合并成https.push.gb28181.conf,以方便测试

说明:

1.使用SRS的web端推流,需要使用https协助的接口,相关配置在https.rtc.conf中

2.播放网络摄像头的视频流,相关配置在push.gb28181.conf中

准备好配置文件后,就可以启动SRS服务器了,执行如下命令

CANDIDATE="192.168.1.10"./objs/srs -c conf/https.push.gb28181.conf

若是在公网测试,CANDIDATE的地址设置成公网IP

若是在本地测试,CANDIDATE的地址设置成服务器网卡的IP

检查SRS是否成功启动,可以打开http://192.168.1.10:8080,或者执行命令:

# 查看SRS的状态./etc/init.d/srs status# 或者看SRS的日志tail -n 30 -f ./objs/srs.log

四、推拉流测试

访问http://192.168.1.0:8080或https://192.168.1.0:8088

如下所示

可以通过SRS控制台,查看相关流信息

进行SRS播放器,可以查看流信息

需要注意的是,若使用非默认端口的,需要手工修改下对应的端口,如下图所示

注:若需要web推流测试,且SRS没有安装在本地,需要使用https协议的接口

笔者测试项目如下

1.web推流,web拉流播放

2.gb28181推流,web拉流播放

3.webrtc native推流,web拉流播放

4.web推流,webrtc native拉流播放

5.gb28181推流,webrtc native拉流播放

6.webrtc native推流,webrtc native拉流播放

目前各测试项目工作正常

后记

本文档记录的是笔者的测试过程,有几点问题,笔者强调下

1.webrtc native默认推流使用opus音频编码,SRS默认使用AAC音频编码,建议在SRS中启用opus音频编码

注:每路音频编码AAC转opus都会消耗服务器资源的,不要开太多

2.webrtc native默认本地不启用h264编码的,需要自己打开相关编译选项;部分支持硬件加速的Android设备会启用h264,需要在编译时开户软解码。否则SRS默认默认不支持的,接口上会返回400错误

3.webrtc默认使用udp传输数据的,不建议修改成tcp

4.为测试方便,建议关闭浏览器的跨域限制

以谷歌浏览器为例:

在浏览器地址栏输入

chrome://flags/#block-insecure-private-network-requests

Block insecure private network requests.项的Default改为Disabled即可。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。