2020-08-30

Kdenlive 20をScientific Linux 7上でビルド

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.42.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が無事に起動した。

0 件のコメント:

コメントを投稿