2013年12月8日日曜日

DLNA.ORG_CI

DLNA 関連メモ

DLNA Networked Device Interoperability Guidelines March 2006,  7.3.32 MM op-param よりサマリー

DLNA.ORG_CI


DLNA.ORG_CI=0 or 1

引用
If the context of the protocolInfo involves a content binary that is converted from a
different content binary, then ci-value is "1".  , the ci-value is "0".

??
つまり、 トランスコードでストリーミングしたら1ってこと?

2013年12月5日木曜日

DLNA resource タグの順序 / Viera , iPod での認識状況

さて、 昨日 AV Media Controller で DLNA の resource タグ内容が見れるようになった。
mp4 を Viera / iPod Touch でそれぞれエンコードしてみるための3つの準備の1つでした。

・ resource タグの中身が見られるようにする
・ Viera / iPod Touch が first-resource しか見ないのか、すべての resource タグを見て
  自分に最適なものを選ぶのか確認する
・ Viera / iPod Touch に最適な profile 構成を確認する

で、 今日は 2点目の  first-resource しか見ないのか、すべての resource タグを見て選択するのか?について。

結論を言うと、 Viera は first-resource でなくてもよい。
iPod Touch は first-resource しか見ていなさそう。


まずは config.xml のテスト時の設定状況を。

●<mapping> 部分
<map from="mp4" to="video/mp4"/>

●<mimetype-profile-mappings> 部分
<transcode mimetype="video/mp4" using="ffmpeg-viera"/>
<transcode mimetype="video/mp4" using="ffmpeg-ipod"/>

ここで、 video/mp4 の mimetype に対して、 ffmpeg-viera, ffmpeg-ipod という
2つの profile を指定している。

●profile 部分 (最終的な設定ではないです)

<!-- for Viera -->
      <profile name="ffmpeg-viera" enabled="yes" type="external">
        <mimetype>video/vnd.dlna.mpeg-tts</mimetype>
        <accept-url>no</accept-url>
        <first-resource>no</first-resource>
        <hide-original-resource>no</hide-original-resource>
        <agent command="/data/bin/ffmpeg-viera" arguments="%in %out %seconds" can-seek="yes"/>
        <buffer size="14400000" chunk-size="512000" fill-size="1024000"/>
      </profile>

<!-- experimental for iPod touch -->
      <profile name="ffmpeg-ipod" enabled="yes" type="external">
        <mimetype>video/M2TS</mimetype>
        <accept-url>no</accept-url>
        <first-resource>yes</first-resource>
        <hide-original-resource>no</hide-original-resource>
        <agent command="/data/bin/ffmpeg-ipod" arguments="%in %out %seconds" can-seek="yes"/>
        <buffer size="14400000" chunk-size="512000" fill-size="1024000"/>
      </profile>
<!-- experimental for iPod touch -->

ポイントとしては、以下3点
  • Viera profile では  video/vnd.dlna.mpeg-tts を指定し、iPod profile では、 video/M2TS を指定している
  • first-resource は Viera : no / iPod : yes
  • hide-original-resource は 両方とも no
この設定でテストを実施。
AV Media Controller で見ると、 resource タグは以下のようになっていた
(一部のみ抜粋)

●Resource 1  ( iPod Profile 設定 )
Mime Type : video/M2TS;rate=44100;channels=1
Protocol Info : http-get:*:video/M2TS;rate=44100;channels=1:DLNA.ORG_OP=10;DLNA.ORG_CI=1


●Resource 2  ( Original Resource )
Mime Type : video/mp4
Protocol Info : http-get:*:video/mp4:DLNA.ORG_OP=01;DLNA.ORG_CI=0

●Resource 3  ( Viera Profile 設定)
Mime Type : video/vnd.dlna.mpeg-tts;rate=44100;channels=1
Protocol Info : http-get:*:video/vnd.dlna.mpeg-tts;rate=44100;channels=1:DLNA.ORG_OP=10;DLNA.ORG_CI=1

なぜか  rate,  channels という設定が入っている。 しかも channels=1 ... いいのか。。
Mediatomb の Transcode 設定の Documentation を確認し、 
各 Profile に以下の設定を追加。
また、 Original Resource はちょっと見たかっただけなので yes に設定して消す。

追加部分
<sample-frequency>off</sample-frequency>
<audio-channels>off</audio-channels>
いずれも、 mediatomb か player に通知する設定の模様。 source とか具体的設定などを入れられる。

config.xml を修正し、再起動後、 下記のようになった。
●Resource 1  ( iPod Profile 設定 )
Mime Type : video/M2TS
Protocol Info : http-get:*:video/M2TS:DLNA.ORG_OP=10;DLNA.ORG_CI=1

●Resource 2  ( Viera Profile 設定)
Mime Type : video/vnd.dlna.mpeg-tts
Protocol Info : http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_OP=10;DLNA.ORG_CI=1

この設定で、 とりあえず Viera で再生したときは Viera Profile で、
iPod Touch で再生したときは iPod Profile でトランスコードされるようになった。

ちなみに、 first-resource を逆  (Viera : yes,   iPod : no ) にすると
Viear は再生できたが iPod は Viera Profile で再生をはじめ、がくがく再生。。。
ということで、 おそらく Viera は複数リソースから選択、 iPod は first resource のみと推測
(単に Viera が iPod Profile の Mime type を理解しないだけかもしれないですが、、、
そこまで検証する気力がない。。。)


あと、気まぐれで iPod Touch の別のアプリで
再生を試みた。。。
ところ、 メディアフォーマットを認識しなかった。。。

iPod というくくりで考えていたのですが、 実は  DLNA クライアントアプリで
対応状況が違うらしい。。。 (T_T

なお、 いろいろ検証して、とりあえず再生できたのは  8Player Lite で、
再生できなかったのが  Media Link Player です。。。
アプリごとの検証をする気力はないなぁ~





2013年12月4日水曜日

AV Media Controller / Mediatomb - resource タグ

mediatomb で 1つの mp4 ファイルを  Viera と iPod Touch にそれぞれ配信したい、と思っています。
Viera 設定で配信自体はできますが、 iPod Touch(4Th Gen) では、
対応していないのか再生能力が足りないのか、 途切れたりうまく再生できません。

mediatomb のDocumentation の Transcoding の mimetype-profile-mappings 部分を見ると、
同一の mimetype に対し、複数の profile を指定できる、とある。
その場合、 DLNA クライアントには複数の resource タグが入った xml が送付される。
ただし、クライアント側の実相により、 最初の resource タグしか参照されないものもあるらしい。

profile で下記の指定をすると、 そのprofile が最初の resource に指定されるらしい。
<first-resource>yes</first-resource>

同一 mime-type を処理する2つ(以上)の profile で、 両方に first-resource yes を指定すると
どちらが最初になるかは undefined だそうだ。 (Documentation いわく)


となると、 Viera 用の transcoding profile と  iPod 用の profile の2つを用意し、
2つの resource タグが配信されるように設定して、
Viera / iPod Touch がそれぞれ自分に合った profile を選べばやりたいことができる、
ということになるはずですな。

そのためには。。。

・ resource タグの中身が見られるようにする
・ Viera / iPod Touch が first-resource しか見ないのか、すべての resource タグを見て
  自分に最適なものを選ぶのか確認する
・ Viera / iPod Touch に最適な profile 構成を確認する

ということをやれば、 1つの mp4 (mp4 でなくてもよいけど) から Viera / iPod Touch に
最適な transcoding 設定で配信できるはず!

というわけで まず1点目。

resource タグの中身を見るのには、 Intel UPnP Development Tools というのがあるようです。
が、
Intel のサイトに行っても、ダウンロードのリンクが切れていて入手できない。。。

仕方がないので別のツールを採用

Open Software Project - Developer Tools for UPnP Technologies

ダウンロードして、普段使いの Windows にインストール
その中に入っている AV Media Controller を起動して
左側のペインのツリー構造から、 Mediatomb のコンテンツ (mp4) を選択すると

Resource タグ見えました! 2つ!

これで1点目はクリア~!

2点目は、、まぁ 試行錯誤しながら、 Viera/iPodTouch が first resource しか見ないのかどうか
確認すればよい。。。



2013年12月1日日曜日

第4世代 iPod Touch 仕様

iPod Touch でも DLNA 経由で動画/音楽を… ということで
まずは基本的なスペックを確認。

すぐに見つかるだろうと思ったけど意外と見つからなかった。
というか、そもそも自分の iPod Touchが第 ? 世代なのかもわからなかった。。。

iPod touch (第 4 世代) - 技術仕様
http://support.apple.com/kb/SP594?viewlocale=ja_JP

のちのち気になりそうなところだけ引用

●オーディオ
  • 周波数特性:20Hz〜20,000Hz
  • 対応するオーディオフォーマット
    • AAC(8〜320 Kbps)
    • 保護されたAAC(iTunes Store)
    • HE-AAC、MP3(8〜320 Kbps)
    • MP3 VBR、Audible(フォーマット2、3、4、Audible Enhanced Audio、AAX、AAX+)
    • Apple Lossless
    • AIFF
    • WAV
  • ユーザー設定が可能な音量制限
●ビデオ
  • H.264ビデオ
    • 最高720p
    • 毎秒30フレーム
    • メインプロファイルレベル3.1(最高160 KbpsのAAC-LC)、
      48kHz、.m4v、.mp4、.movファイルフォーマットのステレオオーディオ
  • MPEG-4ビデオ
    • 最高2.5 Mbps、640 x 480ピクセル
    • 毎秒30フレーム
    • シンプルプロファイル(1チャンネルあたり最高160 KbpsのAAC-LC)、
      48kHz、.m4v、.mp4、.movファイルフォーマットのステレオオーディオ
  • Motion JPEG(M-JPEG)
    • 最高35 Mbps、1,280 x 720ピクセル
    • 毎秒30フレーム
    • ulawオーディオ、.aviファイルフォーマットのPCMステレオオーディオ
  • Apple VGAアダプタ接続時
    • 1,024 × 768
  • AppleコンポーネントAVケーブル接続時
    • 576pおよび480p
  • AppleコンポジットAVケーブル接続時
    • 576iおよび480i(ケーブルは別売り)
だそうだ。

iPod 側で余計な変換をしなくてよいように、サーバー側でトランスコードしたい。
そのために調べたけれど、
ほかのフォーマットでも プレーヤーによっては再生できるようだし、
その場合も特にストレスなく見れるみたいなのであまり意味がないかも。。。

同じ動画ファイルを Viera で見る場合、iPod Touch で見る場合で
トランスコード内容を変更したいのだけれども、
サーバー側で Viera か iPod Touch か区別する方法がわからない。。。
もう少し調査予定。



2013年11月29日金曜日

mediatomb + Viera で TED video を再生

前回のBlog で、 mediatomb + Viera で TED video (High Resolution) を再生すると
画面右1割ぐらいが引っ張られたようになる、という話をしましたが、
試行錯誤で何とかみられるようになりました。

結局、 前回記載した Viera の再生サポートページを参考に
トランスコードで再生する場合は  MPEG-2 TS もしくは MPEG-2 PS のどちらかでないといけないので
MPEG-2 TS, PS に対応するフォーマットをすべて試してみた。

ffmpeg  -formats  で確認したところ


●MPEG-2 TS
  •  mpegts : 再生可能(ただし画面ずれ有)
  •  mpegtsraw : 再生不可
●MPEG-2 PS
  •  dvd : 再生可能(画面ずれ有)
  •  svcd : 再生可能(画面ずれ有)
  •  vob : 再生可能(画面ずれ有)
元の動画が  MP4 ( h.264 / AAC ) なので、 
ffmpeg が余計な変換をしなくていいように、という観点で
結局 MPEG-2 TS ( h.264 / AAC ) しかないか、、、という結論に達しました。

でも画面ずれがあるし、、、と思いながらログを眺めていると
なんとエラーメッセージが出ていました

[mpegts @ 0x873d060] H.264 bitstream malformed, no startcode found, use the h264_mp4toannexb bitstream filter (-bsf h264_mp4toannexb)
ということで、 意味は分かりませんが、 -bsf h264_mp4toannexb を指定したところ
無事に解決!

TED + 英語字幕で勉強です。 テレビで見られるのがよい。
ダウンロードするのが面倒ですが。。。

Viera で再生可能なフォーマット / MP4 format requires a seekable stream

備忘がてら。

Viera TH-L37R3 で DMR として再生できるフォーマットについては

Panasonic のサポートページに記載されていました。

TH-P50/46/42VT3・TH-P50/46/42GT3・TH-P46/42ST3・TH-L37/32DT3(DMR機能で再生できるコンテンツの種類)
http://panasonic.jp/support/tv/connect/dmr/th_vt3_gt3_st3_dt3.html
細かな型番は違いますが。。。

TED でダウンロードした MP4 ( h.264 / AAC ) をそのまま再生できるのですが
High Resolution の場合、スムーズに再生できない状況です。

試しに、 わざわざトランスコード (MPEGTS (mpeg2video /mp2) してみたところ、スムーズに再生できた。。。
ただ、なぜか TED のMP4 をトランスコードして再生すると、画面の右1割程度が
引っ張られたようにぶれた感じになってしまいます。。
直し方は要調査。

それでは、ということで  さらに試しに、MP4 (h.264 / AAC) にトランスコードしてみた
(なにも変わっていませんが、試しに。です)
すると、下記のようなエラーが発生。

 [mp4 @ 0x996b8a0] muxer does not support non seekable output
Could not write header for output file #0 (incorrect codec parameters ?): Operation not permitted

調べてみると、どうも MP4 というフォーマットは seekable でないといけないらしい
ffmpeg でのトランスコードで mediatomb のパイプに連携する場合
受信側から見ると seekable に見えないようですね。。。

以下引用
--------------------------------
you cannot write to a pipe using MP4 format,
as the MP4 format requires a seekable stream - it is logically impossible.
--------------------------------

こうなると High Resolution 版はあきらめるか、
MPEG-TS で画面表示がおかしい原因を突き止めるか、、、 多難です。

※2013/12/01 補足 ----------------------
ffmpeg で作成した mp4 コンテナには、メタデータを格納した Moov atom という部分が
一番後ろにあるそうです。
-movflags faststart オプションをつければ、 2パス目のエンコードの際に
該当の Moov atom 部分を先頭に持ってくることができ、ストリーミング可能になる模様。
ただし、トランスコードでは、2パスエンコーディングではないためダメなんでしょうね。。。

movflags については下記を参照(movflags で検索)
http://ffmpeg.org/ffmpeg-formats.html

なお、手持ちの ffmpeg が movflags faststart に対応しているかどうかは
ffmpeg -h full でヘルプを表示させ、 movflags を探せばよいです。
full がついていないと表示されません。。。
------------------------------------------

※ 2013/12/10 追記 -----------------------
Viera catalog
http://ctlg.panasonic.com/jp/tv-theater/viera/lcd-tv/TH-L37R3.html
-----------------------------------------

2013年11月21日木曜日

mediatomb コンパイル

Fedora 19 環境で mediatomb をコンパイルした時のメモ

●入手元
入手元も後から再確認したため、実際とは違うかも。

mediatomb-0.12.1
http://mediatomb.cc/pages/download

mediatomb-seek.patch
http://sourceforge.net/p/mediatomb/patches/19/

mediatomb-0.12.1-gcc46.patch
http://sourceforge.net/p/mediatomb/patches/25/

mediatomb-0.12.1.tonewjs.patch
mediatomb-0.12.1.jsparse.patch
http://sourceforge.net/p/mediatomb/patches/31/


libav_0.7_support.patch
https://launchpadlibrarian.net/71985647/libav_0.7_support.patch

libavformat_0.11_support.patch
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677959

timeseek.patch (ファイル名は適当)
http://www.ongs.net/ossan/diary/?date=20110923


●追加導入
mediatomb のWebページの Requirement の S/W と devel パッケージ
後から確認しているため、一部間違っているかも。。。
すべて yum で導入

・sqlite
sqlite-devel-3.8.0.2-4.fc19.i686
sqlite-3.8.0.2-4.fc19.i686

・MariaDB
mariadb-libs-5.5.33a-1.fc19.i686
mariadb-5.5.33a-1.fc19.i686
mariadb-devel-5.5.33a-1.fc19.i686
mariadb-server-5.5.33a-1.fc19.i686

・expat
expat-devel-2.1.0-5.fc19.i686
expat-2.1.0-5.fc19.i686

・zlib
zlib-devel-1.2.7-10.fc19.i686
zlib-1.2.7-10.fc19.i686

・file  ( libmagic )
file-devel-5.11-11.fc19.i686
file-libs-5.11-11.fc19.i686
file-5.11-11.fc19.i686


・js
js-devel-1.8.5-13.fc19.i686
js-1.8.5-13.fc19.i686

・taglib
taglib-devel-1.9.1-1.fc19.i686
taglib-1.9.1-1.fc19.i686

・libexif
libexif-0.6.21-4.fc19.i686
libexif-devel-0.6.21-4.fc19.i686

・curl
curl-7.29.0-12.fc19.i686
libcurl-devel-7.29.0-12.fc19.i686
libcurl-7.29.0-12.fc19.i686

・ffmpeg 関連
ffmpeg-libs-1.2.4-2.fc19.i686
ffmpeg-devel-1.2.4-2.fc19.i686
ffmpegthumbnailer-2.0.8-4.fc19.i686
ffmpeg-compat-0.6.7-1.fc19.i686
ffmpeg-1.2.4-2.fc19.i686
ffmpegthumbnailer-devel-2.0.8-4.fc19.i686
ffmpeg-compat-devel-0.6.7-1.fc19.i686

・lastfmlib
lastfmlib-0.4.0-7.fc19.i686
lastfmlib-devel-0.4.0-7.fc19.i686

●パッチ適用
各 patch ファイルは、 mediatombのソースを展開してできる mediatomb-0.12.1 ディレクトリと
同じレベルに配置して下記のスクリプトを実行。

libavformat については 0.7 -> 0.11 の順で適用
最後の time-seek.patch の 3つの HUNK のうち、
真ん中の1つ ( static int _parse_npt 関数 ) は
なぜか適用失敗。 
原因がわからなかったので、転記して組み込み(笑)

echo
echo "patch : mediatomb-seek.patch"
patch -p0 < ../mediatomb-seek.patch

echo
echo "patch : mediatomb-0.12.1-gcc46.patch"
patch -p1 < ../mediatomb-0.12.1-gcc46.patch

echo
echo "patch : mediatomb-0.12.1.tonewjs.patch"
patch -p1 < ../mediatomb-0.12.1.tonewjs.patch

echo
echo "patch : mediatomb-0.12.1.jsparse.patch"
patch -p1 < ../mediatomb-0.12.1.jsparse.patch

echo
echo "patch :libav_0.7_support.patch"
patch -p1 < ../libav_0.7_support.patch

echo
echo "patch : libavformat_0.11_support.patch"
patch -p1 < ../libavformat_0.11_support.patch

# timeseek.patch は一部適用失敗するが、その部分のソースを追記すればよい
echo
echo "patch : timeseek.patch"
patch -p0 < ../timeseek.patch

●ビルド
mediatomb-0.12.1 ディレクトリに移動し下記のコマンドを実施

./configure
make -j2

なお、 mediatomb の Documentation には、 チェックアウトしたソースを使う場合には
autoreconf -i をする、という記載もあったが、今回はダウンロード版なので実施しない。
(実施するとコンパイルが通らなかった)

たまたま 2並列実行可能な PC だったため、  make に -j2 オプションを指定

いくつか警告 ( search の代わりに this->search を使う、など)がでたが
無事コンパイル成功

●インストール
通常であれば make install するところだが、
今回は初回に yum で導入しているため、それを手動差し替え

mv /bin/mediatomb /bin/mediatomb.org
cp mediatomb-0.12.1/build/mediatomb /bin/mediatomb.YYYYmmdd
ln -s /bin/mediatomb.YYYYmmdd /bin/mediatomb

●起動
systemctl start mediatomb.service

/var/log/mediatomb のログを確認し、エラー等がないことを確認



まとめるとこんなもんだけど、ずいぶん時間がかかった。。。
何回コンパイルしたかもう忘れた~

パッチを作成してくださった皆様と、
各種情報をネット上に公開してくださっている皆様に感謝です!




2013年11月20日水曜日

mediatomb 設定(忘れないうちに)

さて、 mediatomb 関連の設定について、忘れないうちに。

●Firewall

Fedoraのいつからかは知りませんが、 iptables から firewalld にかわった模様です。
個人的には、慣れた(?) iptables の方がわかりやすいですが
それこそ慣れの問題だろうということで。

該当の Fedora19 はホームネットワーク上にあり、公開もしていませんが
なぜか firewalld 上は DMZ ゾーンに設定しています。

該当 zone に設定している mediatomb 関連のポートは以下の3点
50500/tcp ,  50500/udp,   1900/udp

50500 は mediatomb で使用 (udp はいるかいらないかわかりませんがとりあえず設定)
1900 は UPnP です。

● config.xml
mediatomb のメイン設定。 基本的なところは検索すればすぐに出てくるので
主なところ、躓いたところだけ。
。。とは言いつつも、テスト的に入れた設定があれこれ混ざっていて整理されていませんが…

・Protocol Info
<protocolInfo extend="yes"/>

PS3 向け設定、という感じで config.xml にも mediatomb の Documentation にも記載されています。
ただし、これを yes に変更しないと viera のリモコンでの 早送り、30秒スキップ、一時停止操作などを行った際に”操作はできません”というような内容のメッセージがテレビに表示されてしまいました。

・ MIMEタイプマッピング
<map from="avi" to="video/divx"/>
たまたま手持ちの動画の形式が  ファイル:avi ,  映像:DivX,  音声:mp3 だったので
この設定を追加(というかコメントを外して有効化)
他にもネット情報に基づきいろいろ追記。

・トランスコード設定
<transcode mimetype="video/divx" using="ffmpeg-viera"/>

video/divx の MIME タイプが来たら ffmpeg-viera という Profile を使用する設定

・プロファイル設定
      <profile name="ffmpeg-viera" enabled="yes" type="external">
        <mimetype>video/vnd.dlna.mpeg-tts</mimetype>
        <accept-url>no</accept-url>
        <first-resource>yes</first-resource>
        <hide-original-resource>yes</hide-original-resource>
        <agent command="/xxx/bin/ffmpeg-viera" arguments="%in %out %seconds" can-seek="yes"/>
        <buffer size="14400000" chunk-size="512000" fill-size="1024000"/>
      </profile>

mimetype は Viera で受け付けるという(どなたかのページで見た)情報をもとに
vnd.dlna.mpeg-tts を指定。  video/mpeg でも動いた記憶あり。
ここで、 DLNAの Profile ID など (DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_OP=10;DLNA.ORG_CI=1 など) を指定するという情報もあったものの
それを追加すると 「再生できないフォーマットです」 の病気にかかるため
結局記載せず。 
DLNA.ORG_* については少し調べたものの結局全く分からず…

agent については、 ffmpeg-viera というスクリプトを指定。
引数には %in, %out 以外に、 タイムシーク用の  %seconds と can-seek="yes" を追加

buffer については、サンプル等を見ながら指定。 fill-size と chunk-size の大小関係が
これでよいのかよくわからないがとりあえず。。

first-resource や  hide-original-resource も、細かくはいろいろありそうですが
ネット上のほかの人ほど詳しくもないのでとりあえず yes 指定。

●トランスコーディングスクリプト
トランスコードのスクリプト自体は省略。 これもこの先細かく調整していこうと思っています。
コアな部分だけ。

exec "/bin/ffmpeg"
   -threads 2
   -ss "プロファイルの%seconds"
   -i "プロファイルの%in"
   -vcodec mpeg2video
   -b:v 4096k
   -aspect 16:9
   -acodec mp2
   -b:a 192k
   -ac 2
   -f mpegts
   - > "プロファイルの%out" 2>>${LOGFILE}

※改行しています。
オプションは ffmpeg のマニュアル等を参照。 (結構変わるらしい)
ポイントとしては以下のとおり
・ exec で実行 (終了時に mediatomb から kill できるように)
・ -ss は -i の前 (シーク時にデコードしながらシークしないように)
・ -f で指定するフォーマットはトランスコードプロファイルで指定した mimetype と形式が一致するように

その他
・ -thread 2 : たまたま 2 thread 実行できる環境なので
・ 2>>${LOGFILE} : ログは取得する派です。そこそこ出るので消すのもお忘れなく。
・ 当然実行権限要 (1度ぐらいは必ず忘れる)

ここまで来るのにもネット上の色々な方のページを参考にさせていただきました。
ありがとうございます。

次はようやくタイムシークのための再コンパイルについて。

2013年11月19日火曜日

Fedora19 + mediatomb 導入メモ (not 手順)

DLNA についてあれこれ調べていたのは
mediatomb + viera でトリックプレイをしたいから。

何とか出来たので備忘の意味を込めてメモ。。。

 ●環境
Fedora release 19 (Schrodinger’s Cat)
mediatomb-0.12.1-31.fc19.20120403gitb66dc1.i686

●導入メモ

・ Fedora 19 / RPM Fusion
Fedora19 のセットアップ自体はミニマムで実施。必要なファイルセットは yum で個別に導入する方針。

mediatomb 関連は fedora の yum リポジトリーには含まれていないため
rpmforge の yum リポジトリを追加します。

RPM Fusion のページから "Enable RPM Fusion on your system" をたどる
そこに、 Fedora 14 以降での 有効化方法が記載されているからそのとおり実施。

su -c 'yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm'

もちろん、 常時 root 作業なので(。。。) su -cなどはなし。

・MariaDB
mediatomb で使用するデータベースはデフォルトの sqlite3 よりも MySQL のほうがよいという
噂を聞きつけ、あらかじめ導入。
ただし、 Fedora19 では MySQL ではなく MariaDB に代わっている模様。
しばらく触っていないうちに浦島太郎状態。。。
yum で導入。 ただ、実際導入後は MySQL と同じ(笑)

・mediatomb
mediatomb も yum で導入。 そもそももともとメモする気もなかったためログなどはなし。
特に気にするところもなかった記憶があります。
最終的には mediatomb + viera でタイムシークを行うためソースからコンパイルしますが
ユーザーや設定回りは yum で入れると半自動のため、そちらを採用。
systemd での自動起動設定などはまだ勉強していないのでちょっとハードル高いし。。。
最終的に mediatomb のファイルのみを差し替える。
まぁ邪道といえば邪道かもしれませんが、動けばよし!とします。


・mediatomb の初期設定
初回起動して config.xml を作成する、など 一通りの設定を実施。
そのあたりは検索すればいろいろと出てきます。

ただ、ちょっと引っかかったのは、 systemd で自動起動設定をした後
Linux を再起動すると、 mediatomb の起動が失敗したこと。
mediatomb のログを見ていると、どうもネットワークが有効になる前に起動しようとした模様。

/lib/systemd/system/mediatomb.service ファイルを修正し、
ネットワークと、mediatomb で使用する MySQL  ( Fedora19 では MariaDB ) を起動した後に
mediatomb が起動するように変更
---
Requires=NetworkManager-wait-online.service network.target mysqld.service
After=NetworkManager-wait-online.service network.target mysqld.service
---
※注:後から systemd について少しかじったところ、ここを直接編集してはいけないらしい
/etc/systemd/system 以下(でしたっけ?)にファイルを置くと優先される模様。
例によって動けばよいポリシーで。


さて次は 設定と、トリックプレイの設定へ。
というか、初めからできていてほしい。。。












DLNA.ORG_PN

DLNA めも



DLNA.ORG_PN
メディアフォーマットを表すMedia Format Profile ID
コンテンツを伝送する時にサーバーとプレーヤーの間でMedia Format Profile IDを確認することで、互換性のあるコンテンツを選択することができる

形式
DLNA.ORG_PN=*<"a"-"z", "A"-"Z", "0"-"9", "_">

例)
DLNA.ORG_PN=MPEG_PS_NTSC

参考)
DLNAとは
http://www.sony.co.jp/SonyInfo/technology/technology/theme/dlna_01.html

DLNA.ORG_OP

DLNA 関連メモ

DLNA Networked Device Interoperability Guidelines March 2006,  7.3.32 MM op-param よりサマリー

DLNA.ORG_OP
コンテンツのランダムアクセス操作についてサポート内容を示すパラメーター
DLNA.ORG_OP=AB  (A,B はそれぞれ 0 or 1)

ABの意味
HTTP メディアトランスポートの場合
  • A : TimeSeekRange.dlna.org (タイムベースシーク)HTTPヘッダーのサポート
  • B : Range HTTPヘッダーのサポート
いずれも  1 がサポートあり
※Full Random Access Data Availability model の場合。 
 Limited Random Access Data Availability model の場合は異なる模様(未調査)

例)タイムベースシークの場合
DLNA.ORG_OP=10