OBS Studio在Qt Creator的编译步骤


  • 网站研运

    我们的萌梦项目想与obs-studio整合一下,借助它的推流功能实现我们的目标,于是我开始研究如何顺利地构建obs-studio了。

    久仰大名

    2016年年初,我们就借助直播这一阵风给我们论坛添加上直播这个很棒的功能了,当时我们选择的直播平台使用的直播软件是OBS。当时的OBS还是用MFC制作的,所以开始还是比较笨拙的,后面OBS的作者采用了Qt制作新的版本obs-studio,这样和我们开发使用的技术是相通的了。那是我最早了解到OBS软件。

    努力制作

    后面由于我们全力制作我们的动作编辑器,和OBS的研发路子岔开了。转眼就到了2018年了,我们的动作编辑器更新了一个又一个版本,而OBS这款软件也经过了多个更新,现在已经变成非常成熟的直播软件了。我们随便在百度可以看到,现在很多主播都在使用OBS进行直播活动。虽然直播在中国的已经慢慢的消退了,但是直播技术作为一种越来越稳定的技术被沉淀下来。于是我们在想能否利用直播这个新鲜事物来为我们的动作编辑器添加一些特色呢?于是有了这次OBS Studio在Qt Creator上的编译步骤。

    准备工作

    为了编译OBS Studio我们的准备工作是要做的。一个基本的认识是OBS Studio是用的是Qt进行编译的,并且OBS Studio是跨平台的,于是我们要将最新的Qt版本安装好。接着呢由于大多数网上的教程都介绍到OBS Studio使用MSVC进行构建的,于是我们尝试使用MSVC 2015来构建它。

    OBS Studio在官网上放出了源代码,源代码是挂在github上的,于是我们从github上下载最新的源代码,以便了解OBS Studio是如何工作的。使用git克隆OBS Studio:

    git clone --recursive https://github.com/jp9000/obs-studio
    

    由于OBS依赖FFMPEG等库,因此官网吧这些库编译了一遍并且放在了一起了。因此我们还需要下载这些库:

    https://obsproject.com/downloads/dependencies2015.zip
    

    我们下载的是VS2015编译的库。
    下载好了之后放在一个目录下。我这边的目录是:G:\QtProject\obs-studio-dependencies\win32

    Qt Creator十分方便,我们可以直接打开Qt Creator进行构建。这和官网上介绍的稍微有些不同,这里记录一下。
    由于CMake在configure的时候要指定一些变量,因此按照下图的方式进行配置:
    0_1515592451271_保存的图.png

    接着也不使用小锤子进行构建了,直接点击三角形进行运行,会顺带构建的,稍等十五分钟吧。
    0_1515592776638_1111131.png

    构建好了之后,我们在类似下面的路径中可以找到obs32.exe。

    G:\QtProject\build-obs-studio-Desktop_Qt_5_10_0_MSVC2015_32bit-Minimum Size Release\rundir\MinSizeRel\bin\32bit
    

    当然双击运行的时候会缺少Qt库。最后只需要将三个Qt库复制粘贴一下就好了。

    Qt5Core.dll Qt5Gui.dll Qt5Widgets.dll

    好了,OBS可以运行啦。
    0_1515593896117_fedc7416-0612-4f14-bccc-bd0849f9cfb7-image.png

    结语

    经过了两到三年的发展OBS Studio已经成为直播业界最有名的跨平台的开源软件了。而我们也想利用OBS Studio在这方面成功之处为我们的动作编辑器添加直播推流的功能,这样的话可玩性就会更高。我们也期待以后能够出现更有意思的玩法。



  • 没想到编译一个大型软件也会这么容易啊!!话说,可以用mingw或者VS2013编译吗?另外你说的“最新的Qt版本”到底是哪个版本啊?



  • @stlcours 可以的,MinGW暂时不行,可能要自己魔改,但是VS2013是作者使用的版本,可以直接用。



  • 您好,我搞这个搞一天了。。一些细节步骤在文章里没有看到
    是这样的:
    我在github上clone项目到本地,然后用QT creator打开 项目中的CMakeList.txt,然后就开始构建,但运行的时候就出错: 14:37:27: 为项目obs-studio执行步骤 ...
    14:37:27: 正在启动 "C:\Program Files\CMake\bin\cmake.exe" --build . --target all

    Microsoft(R) 生成引擎版本 12.0.40629.0
    [Microsoft .NET Framework 版本 4.0.30319.42000]
    版权所有 (C) Microsoft Corporation。保留所有权利。

    MSBUILD : error MSB1009: 项目文件不存在。
    开关: all.vcxproj
    14:37:28: 进程"C:\Program Files\CMake\bin\cmake.exe"退出,退出代码 1 。
    Error while building/deploying project obs-studio (kit: Qt 5.8.0 (msvc2013))
    The kit Qt 5.8.0 (msvc2013) has configuration issues which might be the root cause for this problem.
    When executing step "CMake Build"
    14:37:28: Elapsed time: 00:00.
    急,在线等。。



  • @tobin 嗯,我稍微看一下哈。然后我来回复一下你。



  • @tobin 有几个问题想向你确认一下:
    1、有安装obs的依赖项吗?下载地址:这里
    2、有按照下图的方式对Qt Creator中obs项目的构建进行设置吗?
    图片地址



  • @jiangcaiyang 你好,这个我下了,我尝试过用CMake build这个,然后用VS打开是正常的,但我很想在QT Creator 弄OBS。
    首先我不知道你这个界面是在哪弹出来的,看起来有些像CMake的配置界面但又不是,Creator里面也没看到这个界面,我一开始没有找到你这个界面于是就没有设置以来的那个deps,但是在编译错误之后,我手动在CMakeList.txt中设置了 depspath变量,然后build就顺利完成了,可最后运行的时候却又发生了我留言的错误,现在问题依然没解决



  • @tobin 这个界面就是Qt Creator的。很简单。在Qt Creator项目选项卡里,选择构建,有一个CMake选项卡,即是我截图中的效果。
    0_1521729016550_e901b625-c635-47ef-8d8c-7cd1671e15a9-image.png



  • @tobin 要是用cmake的话,我觉得clion更方便些



  • @tobin 我和你有同样的问题,而且用qt打开cmakelist不能配置会出现这样的错误:

    D:\Win\Program Files\CMake\share\cmake-3.11\Modules\CMakeTestCCompiler.cmake:52: error: The C compiler "C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.13.26128/bin/HostX64/x64/cl.exe" is not able to compile a simple test program. It fails with the following output: Change Dir: C:/Users/siku/AppData/Local/Temp/QtCreator-jpeRAp/qtc-cmake-JttTcaLu/CMakeFiles/CMakeTmp Run Build Command:"jom" "/NOLOGO" "cmTC_dc326\fast" 系统找不到指定的文件。 Generator: execution of make failed. Make command was: "jom" "/NOLOGO" "cmTC_dc326\fast"
    

    它的cmake generator是这个:
    0_1523967732514_ff052971-47eb-49c4-9984-eda331c7d8ed-image.png
    我修改成:
    0_1523967767408_85221fe4-b6fd-44d3-8ba0-26b62efa19d4-image.png
    以后会出现这样的错误:

    :-1: error: Failed to activate protocol version: "CMAKE_GENERATOR" is set but incompatible with configured generator value.
    

    只有用过cmake-gui然后才能正确的camke,但是会弹出这个:
    0_1523968068547_0e47719e-8620-4689-9dde-5970563250a0-image.png
    gu关闭以后就ok

    然后和你是一样的错误

    MSBUILD:-1: error: MSB1009: 项目文件不存在。
    

    我的环境是:

    win10 x64
    vs2017 x64
    qt5.10.1 msvc 64
    cmake3.11
    


  • @siku 这个是obs项目吗?英文字符好多,我有点儿迷~
    0_1523969318077_QQ图片20180417204829.jpg



  • @tobin 顺便我不会cmake,请问你怎么添加的?



  • @jiangcaiyang 嗯,我也看不懂直接复制的



  • @siku 我写了一个简单的cmake教程,给你一个链接吧😝
    还有呢。





  • @siku 我们论坛还有一些资源,使用搜索功能就容易找到的。



  • @jiangcaiyang 讲真,qt creator编译obs-studio真的很迷。
    对了,你msbuild项目不存在的问题解决了吗?



  • @jiangcaiyang 看到了,浏览ing


 

最近的回复

  • 感觉很棒的样子,还有谜之抖动特效😍

    阅读更多
  • 这次在QWidget里面嵌入了qml,正好赶上七夕,就制作了这个小程序。
    随着七夕临近,牛郎和织女会相遇!

    0_1534381046875_163cc660-5a5e-46d1-ac5e-0414a2252644-image.png

    源代码

    Fork me on Gitee

    加了特效的桌面

    0_1534402386328_20180816_144729 (2).gif

    阅读更多
  • @jiangcaiyang 有源代码哦

    阅读更多
  • 很棒!求软件,我要摆在我的桌面上。

    阅读更多

关注我们

微博
QQ群











召唤伊斯特瓦尔