源码编译Kdenlive视频编辑器

源码编译Kdenlive视频编辑器

Kdenlive官方提供的是Ubuntu的编译方法,本问内容是在openSUSE 15.2下编译方法,编译过程相同,只是依赖包名称上存在一些不同。
编译依赖条件: Qt >= 5.7, KF5 >= 5.50,MLT >= 6.20.0

安装编译工具

如果你是第一次编译源码,那么你必须安装编译器套件后才可以编译代码。

sudo zypper install gcc gcc-c++ git cmake cmake-gui extra-cmake-modules libSM-devel

安装KDEFrame5和Qt5依赖库


sudo zypper install karchive-devel kbookmarks-devel kcoreaddons-devel kconfig-devel \
kconfigwidgets-devel kdbusaddons-devel kio-devel kwidgetsaddons-devel \
knotifyconfig-devel knewstuff-devel kxmlgui-devel kdeclarative-devel \
knotifications-devel kguiaddons-devel ktextwidgets-devel purpose-devel \
kiconthemes-devel kdoctools-devel kcrash-devel kfilemetadata5-devel kio \
kinit libqt5-qtdeclarative-devel libqt5-qtsvg-devel libqt5-qtquickcontrols \
libqt5-qtmultimedia-devel libQt5QuickControls2-devel breeze5-icons \
libmlt-devel libmlt++-devel rttr-devel  libqt5-qtnetworkauth-devel

安装mlt++7库

从“21.08.1”版本之后就需要使用mlt++7.0.0版本库了,所以如果不满足要求的用户可以自己升级或者按照下面方法源码安装一下。

下载源码地址 https://github.com/mltframework/mlt/releases/latest
当前2021/09时间的最新版本为7.0.1,我们就以这个版本为例:


wget -c https://github.com/mltframework/mlt/releases/download/v7.0.1/mlt-7.0.1.tar.gz

tar zxvf mlt-7.0.1.tar.gz
cd mlt-7.0.1
mkdir build/
cd ./build/
cmake -DCMAKE_INSTALL_PREFIX=/usr ../
make -j$(nproc)

# 安装
sudo make install

如果不希望影响当前系统使用的mlt库,可以自定义安装目录,例如: -DCMAKE_INSTALL_PREFIX=/apps/mlt7

自定义mlt++库时需要设置一些环境变量,保证编译环境可以找到这个库,例如设置 PKG_CONFIG_PATH 变量:

export PKG_CONFIG_PATH=/apps/mlt7/lib64/pkgconfig:$PKG_CONFIG_PATH
export PATH=/apps/mlt7/bin:$PATH

正式开始

1.下载源码

当前2021/09最新版本是 v21.08.1(使用命令git tag|tail -5获取)

git clone https://invent.kde.org/multimedia/kdenlive
git checkout v21.08.1

编译代码

支持运动跟踪功能Motion-Track

运动跟踪功能需要使用opencv,因此需要先下载opencv模块,然后编译再使用-DMOD_OPENCV=ON参数重新编译MLT才可以支持。

wget https://github.com/opencv/opencv/archive/4.3.0.tar.gz -O opencv-4.3.0.tar.gz
wget https://github.com/opencv/opencv_contrib/archive/4.3.0.tar.gz -O opencv_contrib-4.3.0.tar.gz
tar xaf opencv-4.3.0.tar.gz
tar xaf opencv_contrib-4.3.0.tar.gz
cd opencv-4.3.0
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.3.0/modules \
  -DOPENCV_GENERATE_PKGCONFIG=ON -DBUILD_LIST=tracking -DOPENCV_BUILD_3RDPARTY_LIBS=OFF


如果是使用自定义环境记得执行如下两个环境变量设置:

git clone https://github.com/mltframework/mlt.git
INSTALL_PREFIX=/apps/mlt7 # or any other choice

# Only if you want to compile MLT manually
cd mlt
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX    -DMOD_OPENCV=ON
make -j$(nproc)
make install

export PKG_CONFIG_PATH=/apps/mlt7/lib64/pkgconfig:$PKG_CONFIG_PATH
export PATH=/apps/mlt7/bin:$PATH

接下来,开始编译代码吧:

git clone https://invent.kde.org/multimedia/kdenlive.git

cd kdenlive
git checkout v21.08.1
mkdir build
cd build

cmake .. -DKDE_INSTALL_USE_QT_SYS_PATHS=ON -DCMAKE_INSTALL_PREFIX=/usr -DRELEASE_BUILD=OFF
make -j$(nproc)

# 安装编译完的kdenlive程序
sudo make install

安装好后,可以直接执行 kdenlive 验证是否成功运行。

问题记录

  1. 如果Python环境使用的是Anaconda3, 这可能导致使用cmake生成Makefile时自动选择了Anaconda3的Qt库,编译最后会因为QT库版本问题报各种函数找不到的错误信息的。解决方法是使用 cmake-gui 命令将选择了 anaconda3 的库路径修改为 /usr/lib64/cmake 下面的路径,qmake 和 Python 使用 /usr/bin/ 目录下的 , 如果 LD_LIBRARY_PATH 环境变量也包含了个人开发的QT库,最好也重新设置一下这个变量,修改好后点击 generate 无报错即可退出,再执行 make 命令编译了。

猜你喜欢

转载自blog.csdn.net/dragonballs/article/details/126272600