C/C++教程

在windows下yangwebrtc2编译运行成功——强推防踩坑

本文主要是介绍在windows下yangwebrtc2编译运行成功——强推防踩坑,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

1、yangwebrtc介绍

2、编译必需的环境搭建

2.1 webrtc服务器

2.2  QT

2.2.1 QT环境

2.2.2 QT编译器

2.2.3 Windows运行库

3、编译前的准备

3.1 下载yangrtc源码和库

3.2 配置库

4 运行

4.1 配置本地视频和音频

4.2 运行

5 问题


1、yangwebrtc介绍

https://gitee.com/yangrtc/yangwebrtc

https://github.com/yangrtc/yangrtc2

yangwebrtc是一个自主研发的支持Webrtc/Srt/Rtmp的rtc架构,包含多种视音频编解码和处理等。

支持视频会议、高清录播直播、直播互动等多种视音频应用。
可用于远程教育、远程医疗、指挥调度、安防监控、影视录播、协同办公、直播互动等多种行业应用。
webrtc支持为自主研发,非谷歌lib,兼容webrtc协议 ,可与谷歌Lib和浏览器互通
支持Srs sfu https://github.com/ossrs/srs/
支持Linux/Windows操作系统,android/ios/mac版本正开发中

这里面有封装好的底层库,还附带了一个推流客户端和播放客户端。我采用的是2021年10月31日最新版的2.0.032版本。

2、编译必需的环境搭建

2.1 webrtc服务器

这里有2种,一种是srs4.0,一种是zlm。如果没有linux环境的可以使用一下zlm。博主这里使用的是srs,用zlm的同学请自行摸索。

https://github.com/ossrs/srsa

这里yangwebrtc推荐的配置是https.rtc.conf

git clone -b 4.0release https://gitee.com/ossrs/srs.git &&
cd srs/trunk && ./configure && make && objs/srs -c conf/https.rtc.conf

2.2  QT

2.2.1 QT环境

你需要一个QT环境(推荐5.14.2及以上版本)来打开工程libyangrtc2、yangpushstream2、yangplayer2,如需改动目录将其.pro文件中HOME_BASE=..\更改为所需目录。
QT下载地址:Index of /archive/qt/5.14/5.14.2(博主使用的就是这个链接)

2.2.2 QT编译器

需要下载QT Creator,也就是qt可视化界面,这个自行百度了。

2.2.3 Windows运行库

需要下载msvc2019-64位,也是yangrtc作者推荐的。2.0.032版本目前不支持mingw版本。

在这里注意以下,2019在qt下好像支持不是很友好,需要自己配置一下骗过qt (╥﹏╥),这里推荐一个文章

qt 已经安装了msvc2019,如何配置msvc2017的开发环境 - 小城熊儿 - 博客园

搭建Qt中MSVC2019开发环境 - 看不见的R - 博客园

我这里没有2017,我就用2015顶替也是可以的,所以我后面的qt库都要用这个2015的

 

3、编译前的准备

3.1 下载yangrtc源码和库

Release 2.0.032 with thirdparty lib and runtime · yangrtc/yangrtc2 · GitHub

yangrtc2-2.0.032.rar
yangrtc2_win_runtime.rar

这里是根据编译操作教程视频来的

yangrtc2(yangwebrtc)windows版本编译教程_哔哩哔哩_bilibili
https://gitee.com/yangrtc/yangwebrtc/releases/yangrtc2.032_video

先编译yangrtc2,建议编译debug的,一路build的下去。只要qt配置对了,基本是可以一路畅通编译的。

3.2 配置库

教程视频里面也有教,二个就是把qt的一些库拷贝过来,或者你在系统环境制定PATH。或者最快的就是用F:\Qt\Qt5.14.2\5.14.2\msvc2015_64\bin里的windeployqt.exe 来直接给exe配库。

用法就是在powershell里面运行 windeployqt.exe yangpushstream2.exe 

最后的库大致是这样的

4 运行

4.1 配置本地视频和音频

由于我踩过坑的我知道,所以这里要给自己配一个usb摄像头之类的和麦克风。没有麦克风我后面会说到。摄像头没有的话可以度娘一下VCam,这是一个虚拟本地摄像头。

4.2 运行

确保srs启动成功后,运行yangpushstream2.exe是会失败的话,比如这种:

我这里的原因是定位到了由于音频打开失败(因为我们没有麦克风),但是这个bug没处理,导致运行出错了。这里我们将这几处注释

YangPushHandleImpl.cpp


3    YangPushHandleImpl::YangPushHandleImpl(....
     ...
10   //m_cap->startAudioCapture();//注释掉音频捕获
11   m_cap->startVideoCapture();
12   //m_cap->initAudioEncoding();//注释掉音频编码初始化
13   m_cap->initVideoEncoding();
}    

58   int YangPushHandleImpl::publish(...
     ...
81   m_pub->start();
82   //m_cap->startAudioCaptureState();//注释掉开始音频
83   m_cap->startVideoCaptureState();
84   return err; 

}

重新构建yangrtc2和yangpushstream2,再运行yangpushstream2.exe之后就能成功出界面了。修改webrtc的推流地址,点击推流即可成功推流。

在yangplayer2.exe上粘贴推流地址,就能出现播放画面了

 实时的效果还是不错的哈。

5 问题

还是有一些问题需要后期迭代解决的,比如:

音频和视频的单独兼容

程序的重复推流或者播放有时会出现问题导致闪退

上面也看出了一开始播放的时候有花屏

播放一个ffmpeg推给srs的流时,播放处于加速状态,时间戳没有处理好

在srs上显示的数据不对,入口带宽为0

支持开源!

更支持开源贡献者!

yangrtc作者也为降低这个使用rtc门槛而努力,大家快去多支持支持!

yangwebrtc: 中国人自己的Webrtc,自主研发,兼容webrtc协议,可与谷歌webrtc类库互通,支持Webrtc/SRT/RTMP。https://gitee.com/yangrtc/yangwebrtc

这篇关于在windows下yangwebrtc2编译运行成功——强推防踩坑的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!