前回に引き続き、MediatombでDLNA Severを構築していたUbuntu 16.04LTS を18.04へアップグレードしたところ、Mediatombが消えてしまったので再構築した際の手順メモです。(前回の記事:Ubuntu18.04 でmediatombをソースからインストールする(その1))
ビルド環境の構築
ソースファイルをビルドする為にbuild-essentialとautoconfをインストールしてビルド環境を構築します。
$ sudo apt install build-essential
$ sudo apt install autoconf
参照:Ubuntu 18.04 Serverへ開発環境をセットアップ
依存パッケージのインストール 1
mediatombビルドする前に、mediatombが依存しているパッケージをあらかじめインストールします。
依存パッケージはUbuntu パッケージの情報を参考にしてインストールしました。
https://packages.ubuntu.com/source/artful/mediatomb
整理するとつぎのとおり。
17.10 依存パッケージ |
説明 |
追加 |
18.04で追加するパッケージ |
dh-autoreconf | debhelper add-on to call autoreconf and clean up after the build |
x |
dh-autoreconf |
dh-systemd | debhelper add-on to handle systemd unit files – transitional package |
x |
dh-systemd[universe] |
libavformat-dev | FFmpeg library with (de)muxers for multimedia containers – development files |
x |
libavformat-dev[universe] |
libavutil-dev | FFmpeg library with functions for simplifying programming – development files |
x |
libavutil-dev[universe] |
libcurl4-gnutls-dev | development files and documentation for libcurl (GnuTLS flavour) |
x |
libcurl4-gnutls-dev |
libexif-dev | library to parse EXIF files (development files) |
x |
libexif-dev |
libexpat-dev | 以下のパッケージによって提供される仮想パッケージです: libexpat1-dev |
x |
libexpat1-dev |
libffmpegthumbnailer-dev | development files for ffmpegthumbnailer |
x |
libffmpegthumbnailer-dev[universe] |
libflac-dev | Free Lossless Audio Codec – C development library |
x |
libflac-dev |
libmagic-dev | Recognize the type of data in a file using “magic” numbers – development |
x |
libmagic-dev |
libmysqlclient-dev | MySQL database development files |
x |
libmysqlclient-dev |
libsqlite3-dev | SQLite 3 development files |
x |
libsqlite3-dev |
libtag1-dev | audio meta-data library – development files |
x |
libtag1-dev |
libz-dev | 以下のパッケージによって提供される仮想パッケージです: zlib1g-dev |
x |
zlib1g-dev |
pkg-config | manage compile and link flags for libraries |
x |
pkg-config |
uuid-dev | Universally Unique ID library – headers and static libraries |
x |
uuid-dev |
この中からインストールされてないパッケージを追加していきます。
また、追加するパッケージの中には“universe”のリポジトリを追加する必要があるのも存在するのでリポジトリを追加してからパッケージをインストールします。
(参考:リポジトリ追加)
$ sudo apt-add-repository universe $ sudo apt update $ sudo apt install dh-autoreconf dh-systemd libavformat-dev $ sudo apt install libavutil-dev libcurl4-gnutls-dev libexif-dev $ sudo apt install libexpat1-dev libffmpegthumbnailer-dev libflac-dev $ sudo apt install libmagic-dev libmysqlclient-dev libsqlite3-dev $ sudo apt install libtag1-dev zlib1g-dev pkg-config uuid-dev
依存パッケージのインストール 2
更にビルドする際にあった方がよさそうなライブラリーについてもインストールします。
ここでインストールするライブラリーは無くてもビルドは可能なので必要に応じてインストールしてください。
-
libmp4-v2-dev
$ sudo apt install libmp4v2-dev
-
lastfmlib
$ wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/lastfmlib/lastfmlib-0.4.0.tar.gz $ tar -xzvf lastfmlib-0.4.0.tar.gz $ cd lastfmlib-0.4.0/ $ ./configure $ make $ sudo make install
mediatombのビルド
-
mediatombのソースファイルの入手
mediatombの本家(http://mediatomb.cc/)は閉鎖されている為、Ubuntu17.10(artful)のパッケージで配布されているソースコードを利用。
GitHub(https://github.com/marcin1j/mediatomb)やsourceforge(https://sourceforge.net/projects/mediatomb/)などにもソースコードはあったけど、どちらもコードを修正しないとビルドが通らず、手間がかかるのでUbuntuで配布しているソースファイルを利用する事にしました。
http://archive.ubuntu.com/ubuntu/pool/universe/m/mediatomb/mediatomb_0.12.1-47-g7ab7616.orig.tar.xz
$ mkdir source $ cd source/ $ wget http://archive.ubuntu.com/ubuntu/pool/universe/m/mediatomb/mediatomb_0.12.1-47-g7ab7616.orig.tar.xz $ tar -xvf mediatomb_0.12.1-47-g7ab7616.orig.tar.xz
-
mediatombのビルド
$ cd mediatomb-0.12.1-47-g7ab7616/ $ autoreconf --install $ ./configure
sqlite3 | yes |
mysql | yes |
libjs | missing |
libmagic | yes |
inotify | yes |
libexif | yes |
expat | yes |
id3lib | disabled |
taglib | yes |
FLAC | yes |
libmp4v2 | not compatible |
ffmpeg | yes |
ffmpegthumbnailer | yes |
lastfmlib | yes |
external transcoding | yes |
curl | yes |
YouTube | yes |
db-autocreate | yes |
configureでは次のような設定になりました。 libmp4v2が”not compatible”となっていますがビルドはできそうなのでそのまま作業を進めます。
$ make $ sudo make install
インストールが完了すると /usr/local/bin/mediatomb にバイナリーが配置されます。
また、config.xmlについては~/.mediatomb に作成されていました。
mediatombの起動確認
configu.xml に必要な情報を設定したらmediatombを起動して正しく動作する事を確認します。
$ /usr/local/bin/mediatomb
MediaTomb UPnP Server version 0.12.2 - http://mediatomb.cc/
===============================================================================
Copyright 2005-2010 Gena Batsyan, Sergey Bostandzhyan, Leonhard Wimmer.
MediaTomb is free software, covered by the GNU General Public License version 2
2018-10-08 03:49:04 INFO: MediaTomb configuration was created in: /home/abc/.mediatomb/config.xml
2018-10-08 03:49:04 INFO: Loading configuration from: /home/abc/.mediatomb/config.xml
2018-10-08 03:49:04 INFO: UUID generated: 648f7c48-b52f-4b09-b494-a7ef020e1c65
2018-10-08 03:49:04 INFO: Checking configuration...
2018-10-08 03:49:04 INFO: Setting filesystem import charset to UTF-8
2018-10-08 03:49:04 INFO: Setting metadata import charset to UTF-8
2018-10-08 03:49:04 INFO: Setting playlist charset to UTF-8
2018-10-08 03:49:04 WARNING: You enabled the YouTube feature, which allows you
to watch YouTube videos on your UPnP device!
Please check http://www.youtube.com/t/terms
By using this feature you may be violating YouTube
service terms and conditions!
2018-10-08 03:49:04 INFO: Configuration check succeeded.
2018-10-08 03:49:04 WARNING: Sqlite3 database seems to be corrupt or doesn't exist yet.
2018-10-08 03:49:04 INFO: no sqlite3 backup is available or backup is corrupt. automatically creating database...
2018-10-08 03:49:04 INFO: database created successfully.
2018-10-08 03:49:04 INFO: Initialized port: 49152
2018-10-08 03:49:04 INFO: Server bound to: 192.168.10.248
2018-10-08 03:49:05 INFO: MediaTomb Web UI can be reached by following this link:
2018-10-08 03:49:05 INFO: http://192.168.10.248:49152/
実行すると、上記の情報がコンソールに表示されたので問題なさそうです。
早速、webブラウザでアクセスしてみると無事にmediatombのサービスに接続できました。
libmp4v2が”not compatible” や デーモンが無いなど、いくつか課題が残っていますが、今回はDNLA経由で動画も見れるのでヨシとしました。
たぶん、課題は解決せずにgerberaを利用する方が正解だと思うので次はgerberaの環境を構築してみたいと思います。