• 源码编译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
    
    • 1

    安装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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    安装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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    如果不希望影响当前系统使用的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
    • 2

    正式开始

    1.下载源码

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

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

    编译代码

    支持运动跟踪功能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
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

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

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

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

    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    安装好后,可以直接执行 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 命令编译了。
  • 相关阅读:
    分类预测 | Matlab实现PSO-LSTM粒子群算法优化长短期记忆神经网络的数据多输入分类预测
    【libGDX】使用Mesh绘制三角形
    去耦电路设计应用指南(一)MCU去耦设计介绍
    C/S架构的医学影像PACS系统源码,应用于放射、超声、内窥镜、病理等影像科室
    Java多线程篇(7)——AQS之共享锁(Semaphore、CountDownLatch)
    【数据结构】队列的使用方法
    机器学习课程复习——隐马尔可夫
    Nilpotent
    使用ansible中的playbook
    设计模式思维导图
  • 原文地址:https://blog.csdn.net/dragonballs/article/details/126272600