srs webrtc连麦 rtmp直播环境搭建

一、简介
二、修改conf/rtc.conf
三、两个客户端加入房间
四、合流
4.1分别拉流尝试
4.2合流推流
4.3拉取合流

一、简介
直播连麦是指在one2one或one2many进行音视频通话,此时把他们的音视频流合在一起,通过rtmp等协议推送给大量用户做直播。
因此首选需要搭建好以下环境:
srs one2one,one2many通话环境搭建

视频合流非常非常消耗CPU,而且有很多种方式:

SRS+FFmpeg,SRS将WebRTC流转RTMP,FFmpeg将多路RTMP合流。优势:延迟小,音质好;缺点是命令行难度高。

SRS+OBS,方案和SRS+FFmpeg一样,不过用OBS来实现合流。优势:图形化界面更友好,音质好;缺点是延迟大有不同步风险较大。

OBS抓浏览器,OBS直接捕获浏览器窗口和电脑的音频。优势:可见即所得,依赖少;缺点是音质不如前面的方案。

以上引用官方文档:
https://ossrs.net/lts/zh-cn/docs/v4/doc/webrtc#sfu-one-to-one
下面对其中SRS+FFmpeg进行搭建,其他两个可以做测试用,但很难集成在代码里做一个服务器。

二、修改conf/rtc.conf

cat conf/rtc.conf

找到以下:

rtc {
        enabled     on;
        # @see https://github.com/ossrs/srs/wiki/v4_CN_WebRTC#rtmp-to-rtc
        rtmp_to_rtc on;//原off,改为on
        # @see https://github.com/ossrs/srs/wiki/v4_CN_WebRTC#rtc-to-rtmp
        rtc_to_rtmp on;//原off,改为on
    }

然后重新启动,注意这里两个客户端是在同一网段,如果服务器在公网的话,还需要暴露本身的ip,因为在公网的srs无法拿到自己公网ip,它只能拿到它自己ifconfig的ip,而那是它所在局域网的网段。

./objs/srs -c conf/rtc.conf

三、两个客户端加入房间
1111加入房间
请添加图片描述

2222加入房间
请添加图片描述
四、合流

4.1分别拉流尝试

ffplay rtmp://127.0.0.1/1111/1111
ffplay rtmp://127.0.0.1/1111/2222

请添加图片描述
4.2合流推流

ffmpeg -f flv -i rtmp://127.0.0.1/1111/1111 -f flv -i rtmp://127.0.0.1/1111/2222      -filter_complex "[1:v]scale=w=96:h=72[ckout];[0:v][ckout]overlay=x=W-w-10:y=H-h-10[out]" -map "[out]"      -c:v libx264 -profile:v high -preset medium      -filter_complex amix -c:a aac      -f flv rtmp://127.0.0.1/live/merge

以上是srs官网提供的合流,我用了之后出问题了,合流之后小屏的那个花屏了,可能不同的采集设备视频和音频参数不同带来的,以下是笔者自己配置的ffmpeg命令,亲测有效:

ffmpeg -i rtmp://127.0.0.1/1111/1111 -i rtmp://127.0.0.1/1111/2222 -filter_complex "[0:v][1:v]overlay=W-w-100:H-h-100:format=auto,format=yuv420p[out]" -map "[out]" -map 0:a -c:v libx264 -c:a aac -f flv rtmp://127.0.0.1/live/merge

4.3拉取合流

ffplay rtmp://127.0.0.1/live/merge

请添加图片描述

笔者VX:YQW1163720468,入群讨论。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

、、、、南山小雨、、、、

分享对你有帮助,打赏一下吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值