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 か区別する方法がわからない。。。
もう少し調査予定。