Intensity Pro 4K と Ubuntu 16.04 で IkaLog

概要

Intensity Pro 4K とUbuntu 16.04 LTS (amd64, Desktop)の組み合わせでIkaLogを動かすまでの手順です。

本家Wikiの↓の手順をベースにしています。

Linux環境における IkaLog 開発環境の構築

Intensity Pro 4K のドライバインストール

Blackmagic Designのサポートページ からドライバを入手します。 記事作成時点で最新の Desktop Video 10.6.4 を入れました。

必要なパッケージのインストール

$ sudo apt-get -y install build-essential cmake git \
                   libopencv-dev libgtk2.0-dev pkg-config \
                   python3-dev \
                   libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev \
                   libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev \
                   gstreamer1.0-plugins-bad \
                   libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
                   libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev \
                   libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev \
                   libopencore-amrnb-dev libopencore-amrwb-dev \
                   libtheora-dev libvorbis-dev libxvidcore-dev \
                   python-pip python-virtualenv virtualenvwrapper \
                   libblas-dev libatlas-dev libatlas-base-dev

Intensity Pro 4K とりあえず対応版gst-plugins-badのインストール

GStreamerのdecklinkプラグインですが、元々入っているものだと画像が変にずれて上手くいかなかったので、パッチを書きました。githubに置いてあるので、落としてきてビルドします。Intensity Pro無印等ではたぶん不要だと思います。

$ sudo apt-get -y install autoconf autopoint libtool gtk-doc-tools libglib2.0-dev liborc-dev freeglut3-dev
$ git clone --depth=1 -b 1.8.0-patch https://github.com/syptn/gst-plugins-bad.git
$ cd gst-plugins-bad
$ ./autogen.sh
$ make -j 4
$ sudo make install

元から入っているプラグインよりも優先して使われるように、環境変数を設定します。~/.bashrc等に書いておきます。

export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-1.0

virtualenv作成

$ source .bashrc
$ mkvirtualenv -p /usr/bin/python3.5 ikalog

pythonパッケージインストール

(ikalog)$ pip install Mako numpy protobuf MarkupSafe Pillow appdirs \
                      backports-abc chainer decorator filelock \
                      msgpack-python nose py pytest pytools \
                      six tornado umsgpack urllib3 certifi

ikalog用ディレクトリ作成

(ikalog)$ mkdir ~/ikalog
(ikalog)$ cd ~/ikalog

opencvのインストール

(ikalog)$ git clone --depth 1 https://github.com/Itseez/opencv.git
(ikalog)$ git clone --depth 1 https://github.com/Itseez/opencv_contrib.git
(ikalog)$ cd opencv
(ikalog)$ mkdir build
(ikalog)$ cd build
(ikalog)$ cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=RELEASE \
            -D OPENCV_EXTRA_MODULES_PATH=~/ikalog/opencv_contrib/modules \
            -D BUILD_opencv_python3=ON -D BUILD_opencv_python2=OFF \
            -D WITH_CUDA=ON -D BUILD_EXAMPLES=OFF ..
(ikalog)$ make -j 4
(ikalog)$ sudo make install

環境変数を設定します。~/.bashrc等に書いておきます。

export PYTHONPATH=/usr/local/lib/python3.5/site-packages:$PYTHONPATH

IkaLogのインストール

(ikalog)$ cd ~/ikalog
(ikalog)$ git clone https://github.com/hasegaw/IkaLog.git

IkaLog設定

(ikalog)$ cd ~/ikalog/IkaLog
(ikalog)$ cp IkaConfig.py.sample IkaConfig.py
(ikalog)$ vi IkaConfig.py

INPUT部分を以下のように編集します。

INPUT_SOURCE = 'GStreamer'
INPUT_ARGS['GStreamer'] = {'source': 'decklinkvideosrc connection=hdmi mode=720p5994 device-number=0 ! videoparse width=1280 height=720 framerate=60000/1001 format=r210 ! videoconvert ! appsink'}

起動!

(ikalog)$ python IkaLog.py

その他

何回かに一回くらいon_lobby_matchingの取りこぼしが発生。とりあえずGStreamer側で↓のようにちょっとだけ暗くするフィルタをかけたら改善したような気がしますが、Intensity Pro 4Kに特有の現象かどうか調べたいところ…

INPUT_ARGS['GStreamer'] = {'source': 'decklinkvideosrc connection=hdmi mode=720p5994 device-number=0 ! videoparse width=1280 height=720 framerate=60000/1001 format=r210 ! videoconvert ! videobalance brightness=-0.01 ! appsink'}