EL7でKdenlive 20をビルドするメモ。
FFmpegをビルド・インストール
mkdir b
cd b
../configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --arch=x86_64 --enable-libmp3lame --enable-pic --enable-libfreetype --enable-shared --enable-libxcb --enable-libmfx --enable-vaapi --disable-nvenc --enable-libpulse --enable-libx264 --enable-libx265
make -j8 && sudo make install
SCLのdevtoolset-9をインストール
Meltをビルド・インストール
git checkout v6.22.1
scl enable devtoolset-9 bash
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH ./configure --prefix=/usr/local/mlt-6.22.1
make -j8 && sudo make install
注意: sclでbashが起動し、その中でconfigureやmakeを実行する。
ビルド
scl enable devtoolset-9 bash
PKG_CONFIG_PATH=/usr/local/mlt-6.22.1/lib/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH LANG=C cmake3 -DCMAKE_INSTALL_PREFIX=/usr/local/kdenlive-20.08.0 ..
make && sudo make install
起動スクリプト
以下のシェルスクリプトを用意する。
#! /bin/bash
export PATH="/usr/local/kdenlive-20.08.0/bin:/usr/local/mlt-6.22.1/bin:$PATH"
export LD_LIBRARY_PATH=/usr/local/kdenlive-20.08.0/lib64:/usr/local/mlt-6.22.1/lib:/usr/local/lib:/opt/rh/devtoolset-9/root/usr/lib64:/opt/rh/devtoolset-9/root/usr/lib:/opt/rh/devtoolset-9/root/usr/lib64/dyninst:/opt/rh/devtoolset-9/root/usr/lib/dyninst:/opt/rh/devtoolset-9/root/usr/lib64:/opt/rh/devtoolset-9/root/usr/lib:
exec /usr/local/kdenlive-20.08.0/bin/kdenlive "$@"
LD_LIBRARY_PATH
にはKdenliveのパス、mltのライブラリパス、ffmpegのライブラリパス、devtoolで設定されたパスを記載し、最後に
:
を付ける。
QMLのエラー
以下のようなエラーが出たので、ソースコード中のQMLを修正する。
qrc:/qml/kdenliveclipmonitor.qml:1:1: module "QtQuick.Controls" version 2.4 is not installed
2.4
が新しすぎるのだろうと予想して、インストールされているQt5がどのバージョンまでをサポートしているのか確認する。
どうもqmlファイルがいくつかインストールされているようなので、その中の
import
コードを確認する。
grep -h -r 'import QtQuick.Controls ' /usr/lib64/qt5/qml/QtQuick/Controls.2/ | sort -u
import QtQuick.Controls 2.2
import QtQuick.Controls 2.2 as Controls
2.2
が使われているようなので、
2.4
を
2.2
に置き換える。
たくさんあるので
sed
を使った。
sed -i 's/^import QtQuick.Controls 2.4$/import QtQuick.Controls 2.2/' $(git grep -l 'import QtQuick.Controls 2.4')
他にもimportを変更してゆく。
sed -i 's/^import QtQuick 2.11$/import QtQuick 2.9/' $(git grep -l 'import QtQuick.2.11')
sed -i 's/^import QtQuick.Layouts 1.11$/import QtQuick.Layouts 1.3/' $(git grep -l 'import QtQuick.Layouts ')
sed -i 's/^import QtQml.Models 2.11$/import QtQml.Models 2.1/' $(git grep -l 'import QtQml.Models ')
qrc:/qml/kdenliveclipmonitor.qml:514:21: Cannot assign to non-existent property "icon"
src/monitor/view/kdenliveclipmonitor.qml
中の
icon.name
(2箇所) を削除した。
その他
以下のメッセージでFrei0rが見つからない旨が表示された場合、frei0r-pluginsをインストールしてmltをビルドし直す。
Missing package: Frei0r effects (frei0r-plugins) provides many effects and transitions. Install recommended
追記
なぜかeffectsやcompositionsがなにも出てこなかった。
実は、ビルドすると、
prefix.sh
というファイルが生成され、環境変数を設定することになっている。
後日、CentOS 8でKdenliveをビルドしたのだが、このファイルの中身を含んだ起動スクリプトを作成することで、Kdenliveが無事に起動した。