win10 vs2017编译OBS Studio 25.0.8

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调试运行成功。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,175评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,674评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,151评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,597评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,505评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,969评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,455评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,118评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,227评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,213评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,214评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,928评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,512评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,616评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,848评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,228评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,772评论 2 339