【ubuntu】 mediatomb on ubuntu 8.04

別にubuntuだけの話ではないのやけど、我が家のubuntuサーバでmediatombを動かすようにしたのでその設定を覚書き。
以前はCentOSでmediatombを動かして、PS3から音楽やらフォトやらビデオやらを見てました。で、今回はサーバがubuntu 8.04に変わったんで、再設定を。意外と色々はまるもんですなぁ。

以下手順を。

  1. mediatombのインストール
  2. config.xmlの設定
  3. mysqlの設定
  4. コンテンツ登録
  5. MP3 IDタグの文字コード変換

1. のインストールはもうええよね。パッケージマネージャをつかって、mediatombを一式インストールしてくださいな。この時にmysqlもインストールすると後々よろしいです。元々mediatombはsqlite3をバックエンドのDBとして使っているのやけど、sqlite3は遅い。mysqlの方が格段に早いっす。だからmysqlのご使用を強くお勧めしますだ。特に我が家の用にCDが700枚とかって枚数あって、リッピングしたら7000曲にもなった場合はその差が大きいっす。[E:sad]

2. config.xmlの変更やけど、ubuntuのパッケージマネージャでインストールすると、/etc/mediatomb/config.xmlにディフォルトのファイルが作られるはず。このファイルをちょこちょこ〜っと修正します。具体的にはファイル内でPS3用と書かれている箇所を有効にします。

<protocolInfo extend="yes"/>
<map from="avi" to "video/divx"/>

後者はDivXを再生しないのであれば、あんまり関係ないな。
その他の箇所は

    <storage>
      <sqlite3 enabled="no">
        <database-file>sqlite3.db</database-file>
      </sqlite3>
      <mysql enabled="yes">
        <database-file>mediatomb.db</database-file>
        <host>localhost</host>
        <username>mediatomb</username>
        <password>********</password>
        <database>mediatomb</database>
        <port>3306</port>
      </mysql>
    </storage>

この部分。sqlite3をnoにして、mysqlをyesに変更。
usernameとpassword、database、portを必要に応じて設定する。

  <import hidden-files="no">
    <filesystem-charset>UTF-8</filesystem-charset>
    <metadata-charset>CP932</metadata-charset>
    <scripting script-charset="UTF-8">
      <common-script>/usr/share/mediatomb/js/common.js</common-script>
      <playlist-script>/usr/share/mediatomb/js/playlists.js</playlist-script>

さらに日本語が使えるように、filesystem-charsetとmetadata-charsetを設定。
script-charsetはUTF-8にしておかないと正常に動作しないので要注意ですな。
charsetは色々試したけど、結局UTF-8にしておいて後述のEasyTAGで文字コード変換した方がちゃんと日本語表示されるみたいですわ。

3. mysqlの設定。
ubuntuのパッケージマネージャは何やらmysqlの設定もしてくれるんですかねぇ?何かDBができたような気がするのやけど、ここで色々はまったんで、もう手動でやっちゃいました。まずはmysqlをrootで立ち上げて…

$ mysql -u root -p

パスワード聞かれたら、とりあえず空パスを試してみる。パスワード変更してなければ空のはず。
とりあえず、DB一覧を見てみますか。

$ show databases;

最後のセミコロンを忘れずに。
既にmediatombという名前のDBがあったら、それを先に削除しまする。存在しなければこの作業はスキップ。

$ drop database mediatomb;

で、mediatombデータベースを新規に作成して、mediatombユーザにアクセス権限を付与する。

$ create database mediatomb;
$ grant all on mediatomb.* to ‘mediatomb’@’localhost’;
$ flush privileges;
$ quit

これで一旦mysqlから抜け出ます。
次にmediatomb DBに初期のテーブルを作成しますだ。これはmediatombのパッケージにsqlファイルが含まれているのでそれを使います。ただし、ちょっとだけ修正が必要かもしれない。(僕の場合は必要だった)

$ mysql -u root -p < /usr/share/mediatomb/mysql.sql

これを実行した時に「使用するDBが選択されていない」みたいなエラーが発生する場合は、mysql.sqlファイルをroot権限で開いて、先頭に use mediatomb; という行を追加してくださいな。
無事mysql.sqlでのテーブル作成ができたら完了。

5. コンテンツ登録。
ブラウザで http://サーバ名:49152/にアクセスする。
mediatombの管理画面が表示されるので、「filesystem」を選択した登録したいディレクトリもしくはファイルを選択して右上の+ボタンを押す。○付きの+ボタンを使うと一定時間毎に指定したディレクトリ以下のメディアファイルをスキャンして登録するといった事もできるので便利。

登録が完了すれば、PS3から無事再生できるかを確認する。
うまく動かない場合は、/var/log/mediatomb.log を見て何が起きているかを調べる。
まぁ、大抵はmysqlサーバに接続できなかったとかって表示されると思うんやけど。

6. タグの文字コード変換。
これはちょっとおまけ。上記までで無事再生はできると思うのやけど、メタ情報が文字化けする問題が多発した。
原因は文字コードで、僕の使っていたリッピングツールだとMP3のIDタグがShift_JISでエンコードされてたみたい。でもmediatombではUTF-8を指定していたので文字化けして見れなくなってた。この際なんで、ファイルシステムと同じくUTF-8に変換しようと思った所、EasyTAGというツールを発見しました。
さっそくパッケージマネージャを使って、EasyTAGをインストール。設定画面で、読み込み時の文字コードをShift_JISにして書き込み時の文字コードをUTF-8に設定。この状態でファイルをスキャンして全部書き換えるようにしました。かなり時間かかったけど手間はかからんかったね。これで無事PS3のDLNAクライアント上でも日本語タイトルが表示されるようになりましたっと。

ふぅ、今日は長かったな。[E:coldsweats02]

Author: kan
初めてプログラムらしきものを作ったのは幼稚園の時。それから約40年経ち、現在はデジタル回路設計から信号処理、機械学習まで幅広い経験を活かしてシステムアーキテクトとして活動中。超並列処理、デジタル回路とソフトウェアのバランス設計が得意分野。 Linux/Mac/Windows使い。 C/C++を主要言語として、Unity、Qtなどのフレームワーク興味あり。UI/UXデザイン、STL拡張など。 音声処理、画像処理、技術コンサルは仕事でも請け負います。 一般ソフトウェア開発プロセス、医療機器ソフトウェア開発プロセス作成も進行中。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください