本文作者:包子也沉默

win10 vs2017编译OBS Studio 25.0.8

包子也沉默 1年前 (2021-04-01) ( 04-01 ) 1352 0条评论
摘要: 1 开发环境Windows 10 ltsc 2019、Visual Studio 2017 Community、QT 5.4.12、OBS Studio 25.0.8、Windows SDK注意:我用的windows是一个干净的环境,在虚拟机中全新安装的。用vs2019可以省略安装sdk版本的那一步,等有空我再试试。2 准备环境2.1 VS2017下载地址:https://docs.microso

1 开发环境

Windows 10 ltsc 2019、Visual Studio 2017 Community、QT 5.4.12、OBS Studio 25.0.8、Windows SDK

注意:我用的windows是一个干净的环境,在虚拟机中全新安装的。

用vs2019可以省略安装sdk版本的那一步,等有空我再试试。

2 准备环境

2.1 VS2017

下载地址:https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes

安装比较简单,自行百度。

2.2 Windows SDK

在用CMake构建OBS Studio 25.0.8 的VS2017工程时,会提示下面错误。如果使用VS2019构建应该不会报错,我这里使用VS2017,那么手动安装一下提示中的Windows SDK版本。

下载地址:https://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive/

下图中的安装SDK和ISO任选一个,选择安装SDK简单。

我这里偷懒直接全部安装。


2.3 安装QT5.4.12

下载地址:https://download.qt.io/official_releases/qt/5.14/5.14.2/

安装QT:

(1) 运行安装程序qt-opensource-windows-x86-5.14.2.exe,点击next

(2) 输入qt官网的账号和密码,点击next,没有的可以去这里https://login.qt.io/login注册一个。


(3) 继续一直点下一步,直到选择组件的那个地方,这里我除了VS2015相关的取消了,其他的全部选了,根据自行情况自己调整。

2.4 安装CMake

下载地址:https://cmake.org/download/,安装比较简单,直接一直下一步到结束即可。

注意:编译25.0.8要使用3.16以上版本的CMake

3 下载代码

可以下载git上主干代码,也可以下载release版本的代码,我下载的OBS Studio 25.0.8 release版本的。

下载地址:https://github.com/obsproject/obs-studio/releases


4 构建工程

4.1 解压代码

解压缩代码,运行CMake,选择源代码目录,再设置一个工程目录。点击Configure,CMake会开始构建工程,但是后面会出现一系列错误,我们一个个解决。



4.2 解决windows sdk版本过低的问题

上面已经安装过wnidows sdk 10.0.18362,但是还是会报错。重装也不行,先装sdk再装cmake也不行,最后去控制面板中将低版本的sdk卸载了(忘记截图)才解决了这个错误。如果不报这个错误的朋友可以直接跳过,看提示安装vs2019应该不会报这个错误。


4.3 设置QT目录

不设置QT目录会报下面错误,在CMake界面上直接填写QT安装的目录,再次点击configure。


4.4 设置依赖库目录

未设置依赖库时报错如下,我将依赖库目录放置在与OBS代码根目录同级目录。

编译OBS Studio需要一些列的库,这里我全部使用修改Findxxxx.cmake文件来解决

4.5 设置ffmpge库目录

我直接下载的编译好的库,我用的是ffmpeg-4.2.2。下载地址:https://ffmpeg.zeranoe.com/builds/需要下载dev和shared版本。

下载后解压后将两个目录中的文件合并到一起,拷贝合并后的文件到到之前设置DepsPath目录下D:\clib\third_party_binary,修改目录名称。

修改FindFFmpeg.cmake文件中查找ffmpeg库的目录,再次点击configure将不会再提示找不到ffmpeg库

4.6 设置curl库目录

(1)这里使用7.70.0版本,需要手动编译,下载地址https://curl.haxx.se/download.html。

(2)解压缩源代码,进入代码目录,双击运行buildconf.bat.

(3)进入winbuild目录

(4)打开vc命令行工具,输入cd /d D:\clib\curl-7.70.0\winbuild切换到winbuild目录。


(5)输入命令“nmake /f Makefile.vc mode=dll VC=14 MACHINE=x86 DEBUG=no”

具体设置根据自己需求参考BUILD.WINDOWS.txt文件


(6)拷贝编译后文件夹到之前设置DepsPath目录下D:\clib\third_party_binary,修改一下目录名称。

(7)修改FindLibcurl.cmake这个文件中查找curl库的目录,再次点击configure不会提示找不到libcurl库了。

4.7安装python

下载python:https://www.python.org/downloads/release/python-383/

我安装在C盘根目录,勾选添加到PATH。

修改FindPythonDeps.cmake文件,修改后再configure会找到python库文件,输出的红色的信息不用管


4.8设置zlib目录

下载编译好的zlib:https://windows.php.net/downloads/php-sdk/deps/vc15/x86/


解压zlib到之前设置DepsPath目录下D:\clib\third_party_binary,注意文件路径。

修改findzlib.cmake文件,因为下载的zlib库文件名称是zlib_a.lib,所需要加上 zlib_a。由于之前安装了git(包含了zlib),再cmake搜索include目录时会搜索错误,手动修改一下。

4.9安装vulkan

下载地址:https://vulkan.lunarg.com/sdk/home#windows,下载完毕之后直接默认安装到c盘即可,再次CMake时会自动搜索到vulkan的lib和头文件。

4.10设置libvlc

下载地址:http://download.videolan.org/pub/videolan/vlc/last/win32/

下载.7z版本里面会有sdk目录,解压缩整个文件到之前设置DepsPath目录下D:\clib\third_party_binary。

修改FindLibVLC.cmake文件,修改include和lib查找路径

再次点击CMake的Configure会找到LIBVLC。

4.11设置Libmbedtls

下载地址:https://github.com/ARMmbed/mbedtls/releases


(1)解压缩代码,在代码目录地址栏输入“cmd”回车,可以快速在命令行进入目录。

(2)用cmake命令行配置工程,输入“cmake -R . -B ./vs2017”,会在代码目录自动创建一个vs2017目录并,构建出工程。

(3) 打开工程并编译,打开目录vs2017/mbed TLS.sln文件,直接编译等待编译完成。

(4)拷贝生产的lib文件和需要用的头文件目录到之前设置DepsPath目录下D:\clib\third_party_binary,注意文件路径。

(5)修改FindMbedTLS.cmake文件中的查找路径,注意要修改4处。

(6)再次点击CMake的Configure,会找到mbedtls相关文件。


4.12 设置x264

(1)编译x264请看另外一篇文章。

https://www.jianshu.com/p/f3f3f428e49a

(2)修改FindLibx264.cmake文件


4.13 生成工程,终于生成成功,打开工程。

5 编译工程

直接点击编译,等待编译完成,最后全部编译成功。

6 调试运行

(1)按F5调试运行,报错误找不到Qt5Xmld.dll等一些列找不到dll错误。设置调试的运行目录如下:$(ProjectDir)\..\rundir\Debug\bin\32bit。

(2)再次F5运行,提示找不到libcurl.dll,直接将libcurl库的bin目录添加到环境变量的path里面去,添加完毕要重启vs。

(3)再次F5运行,提示如下错误“Failed to create aac streaming encoder(simple output)”,拷贝ffmpge库的bin目录下的D:\clib\ffmpeg-4.2.1\bin\下的所有dll到D:\clib\obs-studio-25.0.8\build\rundir\Debug\obs-plugins\32bit目录。(也可以直接把ffmpeg的bin目录设置到环境变量path中)

(4)重启vs,F5调试运行成功。

文章转载自 https://www.jianshu.com/p/e97493a60b85
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

发表评论

快捷回复:

评论列表 (有 0条评论, 1352人围观) 参与讨论