返回顶部

Olive编译安装(Windows10+VisualStudio2022)

Olive是一个开源的非线性视频编辑器。主要基于QtFFmpeg开发。
image
注:官方的编译指南 https://olivevideoeditor.org/compile 但会有些问题,仅参考

前置条件

电脑上需要的环境

  • Qt(>=5.15)
  • VisualStudio(2022,其他版也可)
  • vcpkg

软件安装

  1. 安装Qt5.15

令人糟糕的是,Qt如今变得不太容易安装。自从Qt5.15以后的版本,就取消了离线安装。所有的Qt后序版本就只能通过在线安装器进行安装。而有时,在线安装器并没有我们想要的版本,这就需要手动配置了。

  1. 安装VS2022
  • 网上下载在线安装器VS2022
  • 傻瓜式安装,一步一步
  • 最后完成VS2022的安装
  1. 安装vcpkg

vcpkg是一个强大的包管理工具。再通俗一点,就是它帮助我们下载源代码,并完成目标平台的编译构建。作为开发者,我们只需要输入vcpkg install xxx,我们就可以得到编译好的基础库(dll,lib,h,xxxConfig.cmake)。在我们的上层工程中,直接使用即可,极大的简化了C++开发的构建流程。

  • 从github克隆vcpkg仓库。
    之所以通过克隆的方式,是因为默认的vcpkg只安装最新版本的三方库。如果想要安装指定版本的三方库,就需要进行一些变基的操作,这就需要通过克隆的方式把完整的仓库拉到本地。
  • 初始化vcpkg,通过仓库中的bootstrap-vcpkg.bat。如下图:
    image
    它会下载安装好一个vcpkg.exe到同级目录
  • 安装完成

配置环境变量

  1. 配置Qt
    image
    其作用有:1,方便exe运行时查找dll。2,方便CMake中查找Qt。

  2. 配置Git。安装VisualStudio2022后,默认就会内置了Git。它的安装路径如下图所示:
    image

  3. 配置CMake。安装VisualStudio2022后,默认就会内置了CMake。它的安装路径如下图所示:
    image

  4. 配置vcpkg。把vcpkg仓库目录添加即可。
    image

编译Olive

Olive的官方github:https://github.com/olive-editor/olive. 但其可能更新,导致编译失败,因此可参考我fork的仓库 https://github.com/zzzcb/olive. 它保证了编译完全可行。

安装依赖

官方指南中指明了,依赖要求

Olive currently has four major dependencies: Qt 5.15+, FFmpeg 3.0+, OpenImageIO 2.1.12+, and OpenColorIO 2.0+. It also uses the CMake build system for configuring. The following are instructions designed to help you on your way to acquiring these dependencies and using them to compile Olive.
但其实,其中的ffmpeg版本也不能太高。笔者进行了测试,最新的ffmpeg7.0已经不能编译通过。使用ffmpeg4.3.1可以编译通过。因此,ffmpeg采用4.3.1,其余依赖均采用最新版本,可顺利编译通过。

安装前述

通过vcpkg.json的方式安装依赖,并使用triplet来指定编译选项

  • vcpkg.json中可以指定依赖名称,基线版本
  • triplet选项,可以指定编译的选项,例如只安装release版本

新建目录olive_dep,用于最终存放所有依赖,新建vcpkg.jsonx64-windows-release.cmake(用于triplet指定)
image
x64-windows-release.cmake内容如下:

set(VCPKG_TARGET_TRIPLET "x64-windows-release")
set(CMAKE_BUILD_TYPE "Release")

安装ffmpeg4.3.1

修改vcpkg.json内容如下:

{
  "dependencies": [
    "ffmpeg"
  ],
  "builtin-baseline": "3426db05b996481ca31e95fff3734cf23e0f51bc"
}

其中的基线版本对应ffmpeg4.3.1
进入vcpkg仓库,使用powershell输入如下指令,可查看基线对应的依赖版本

git show 3426db05b996481ca31e95fff3734cf23e0f51bc:versions/baseline.json | Select-String -Pattern '"ffmpeg"|"zlib"' -Context 0,3
如下图:
image
更多相关资料,参考 https://learn.microsoft.com/zh-cn/vcpkg/consume/lock-package-versions?tabs=inspect-powershell

一切准备就绪,cmd打开命令行,进入olive_dep目录,输入vcpkg install --triplet x64-windows-release
image

安装完成,所有依赖均被放入olive_dep\vcpkg_installed\x64-windows-release
image
image

拷贝bin include lib share 到olive_dep中,防止后序安装其他依赖被清理,并删除vcpkg_installed,如下图
image

安装其他依赖

openimageio openexr opencolorio portaudio
修改vcpkg.json,如下:

{
  "dependencies": [
    "openimageio",
	"openexr",
	"opencolorio",
	"portaudio"
  ],
  "builtin-baseline": "3426db05b996481ca31e95fff3734cf23e0f51bc"
}

cmd进入olive_dep,执行vcpkg x-update-baseline,更新到最新基线
image
命令执行完成,我们可以看到vcpkg.json中的baseline字段就自动更新到了最新

接下来,就可以安装依赖了,cmd进入olive_dep,执行vcpkg install --triplet x64-windows-release
结果生成了新的依赖包,如下:
image
拷贝bin include lib share 到olive_dep中
即形成了最终的依赖包,如下图:
image

配置依赖

将安装好的依赖配置到环境变量,方便后序编译时CMake的查找
image

正式开编olive

如果你不想手动vcpkg编译,也可以直接下载我编好的依赖 链接: https://pan.baidu.com/s/1g0AlXhhCCm-kq8NeUmZ6-Q?pwd=ygnw

  • 下载源码,可从笔者fork的仓库拉取
    https://github.com/zzzcb/olive
    需要注意的是,olive中使用了两个外部仓库,git clone默认不拉取到本地,需要我们手动下载到它指定的目录的,如下:把core和KD下载好放入到olive的这个目录中,后序编译才可以顺利进行
    image

  • 使用vs2022打开源码根目录
    image
    因为我们的依赖都是Release版本,所以,管理配置到Release
    image
    image
    默认CMake就执行成功了,如下
    image
    注:这里要改动一个地方,不然后序生成阶段会报错,就是要添加utf编译选项,在源码根CMakeLists.txt中添加,如下图
    image

接下来,点击生成>全部生成
image
等待编译完成即可。

最后,点击运行即可
image

完结撒花~
image

posted @ 2024-09-17 11:03  Zcb0812  阅读(8)  评论(0编辑  收藏  举报