前言
之前一直在Windows上做开发,后来转iOS。所以没有Windows环境的机器了。最近又在做斗鱼直播,但是遇到斗鱼没有Mac上的直播App。所以自己上网找了一下,发现obs。正巧自己又是做C++开发的,所以准备看看obs的代码。
What is OBS?
This project is a rewrite of what was formerly known as “Open Broadcaster
Software”, software originally designed for recording and streaming live
video content, efficiently.
开发环境
OS : macOS Sierra 10.12
Xcode : Version 8.0 (8A218a)
- 1
- 2
正文
一、OBS-Studio 代码下载
obs git clone:
https://github.com/jp9000/obs-studio.git
- 1
- 2
二、依赖库下载
关于依赖库的安装 参考 git wiki :
https://github.com/jp9000/obs-studio/wiki/Install-Instructions#mac-osx
- 1
- 2
第三方依赖库主要是 FFMPEG 、X264、QT5。cmake 用来生成Xcode工程。可以使用homebrew来安装FFMPEG 、X264。但是QT5 由于 macOS Sierra的原因,无法编译成功。所以直接从QT官方上下载,安装。
1. homebrew 安装
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 1
2. ffmpeg 安装
命令行输入:brew install ffmpeg
- 1
3. x264 安装
命令行输入:brew install x264
- 1
4. qt5 安装
qt5 下载安装:
http://qt.mirrors.tds.net/qt/archive/qt/5.5/5.5.1/qt-opensource-mac-x64-clang-5.5.1.dmg
- 1
- 2
三、Xcode 工程文件生成
FFMPEG X264都是 brew安装,因此 cmake 可以找得到。
FFMPEG安装路径:/usr/local/Cellar/ffmpeg
X264安装路径:/usr/local/Cellar/x264
- 1
- 2
QT5 自定义安装
一般就安装在:/Users/(your name)/Qt5.5.1
- 1
在cmake中无法自动找到qt,因此需要自己配置一下 Qt5Widgets。
一般路径:/Users/(your name)/Qt5.5.1/5.5/clang_64/lib/cmake/
- 1
上述第三方库配置好,就可以根据你自己的cmake生成路径来生成Xcode工程。
我自己的配置路径:/Users/(your name)/obs-studio/build
- 1
最终Xcode工程就会生成在这个地方,有一个叫做 obs-studio.xcodeproj 的工程文件。
四、编译中遇到的错误
工程文件生成后,使用Xcode8 打开工程文件,编译。当然会有一大堆错误。基本都是Link类型的错误。
具体细节不展示。其实就是Xcode macOS的依赖库没有配置。
这么多工程,如何下手分析。其实很简单,查看每一项的依赖,找到一个依赖最少的入手。比如下图这个libobs。
这个target依赖就很少,尝试编译还是有很多错误。基本都是macOS平台库依赖。新建一个Link Binary With Libraries.
libobs:
其他几个target不必多说,看截图。
ffmpeg-mux :
obs-ffmpeg :
obs :
五、加载中遇到的错误
基本上经过上面编译链接依赖项的添加,代码应该能跑起来了。那么你以为这样子就万事大吉了吗?当然不是,编译链接只是基本,最后加载的时候还有问题。比如遇到动态库无法找到了。
因为QT是手动安装的,所以加载的时候就无法找到对应的库。因此在还需要配置runtime search path。
六、加载完成,代码调试
经过上述几个步骤,代码就能跑起来。界面也出来。选择obs工程,R起来。