2009年10月31日

DLNAを使ってのTS再生 on BRAVIA W5

TS抜きが出来る機器を手に入れました。これをBRAVIAで見る一つの方法としてDLNAを使う方法があるので試してみました。

DLNAサーバーとしてはushareというオープンソースのUPnPメディアサーバーを改造して使っているのですが、まず再生はコメントでdreamerさんに確認して頂いた設定値"http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_TS_HD_60_L2_ISO"を使ってすんなり再生出来ました手(チョキ)

ただしこれだけだと早送り・レジュームという番組を視聴するための重要な操作ができません。手持ちのHDDレコーダー(東芝のRD)のパケットを見て試行錯誤した結果、Byteシークに対応すれば良いことが分かりました。ただしHTTPでコンテンツを配信する時にヘッダに以下のようなDLNA用のフィールドを追加してあげる必要があります。

contentFeatures.dlna.org: DLNA.ORG_PN=MPEG_TS_HD_60_L2_ISO;DLNA.ORG_OP=01

最後の"DLNA.ORG_OP=01"が重要です。これを付けておくと早送り操作をした時にRangeヘッダが付加されてコンテンツがリクエストされます。付けないと全くリクエストしてくれません。
あとはリクエストに応じた範囲のデータを返却してあげるだけです。また、この対応だけで早送りだけでなくレジュームにも対応したことになりますわーい(嬉しい顔)

今はテストで仕組みが分かっただけなのでこれから環境整備を進めて完成させる予定です。ちなみにUPnPのところはushareにやらせていますが、コンテンツ配信は Apache + perlスクリプトに任せて以下のような構成にしています。

構成.png

残りの課題はこんな感じかな?

・BRAVIAでのトータル時間表示
 →BRAVIAに教える方法は分かっていますが、それをどこから持ってくるか迷っています。TSの中にタイムスタンプでも入っている?
・サムネイル表示
 →ffmpegを使えるようにしないと面倒かも?録画・保存するのはWindowsマシンなのでそこでサムネイルを作っておく方向で考えた方が楽そう。
・perlスクリプトのところの最終形をどうするか?
 →コマ落ちすることがあったのでCとかで書いてもいいかも。あとエラー処理も追加する必要あり。理想はushareに組み込んでしまうことだろうが、ushareのHTTPサーバーは複数同時接続に対応していないという根本的かつ致命的な問題があったのであんまり追いたくない。
・NASのHDDを換装してサイズを増やす
 →今は500GBあるが1.5〜2TBぐらいにはしておきたい。

でもまだまだ他に試したいこと・やりたいことがあるからいつ完成するのかは分からないけど。。。
ラベル:動画 BRAVIA DLNA
posted by bali117 at 18:01| 東京 ☀| Comment(3) | TrackBack(1) | プログラム | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
dreamerです。

ご無沙汰しております。
何とか早送り、レジューム対応が出来るようになりましたね。
大変、感謝しております。

また質問させて下さい。
contentFeatures.dlna.org: DLNA.ORG_PN=MPEG_TS_HD_60_L2_ISO;DLNA.ORG_OP=01
の追加ですが、毎回素人の質問ですみません。
"http-get:*:contentFeatures.dlna.org: DLNA.ORG_PN=MPEG_TS_HD_60_L2_ISO;DLNA.ORG_OP=01"
であっていますか?

PSの場合も同じ書き方でレジューム再生出来るか教えて頂けると大変助かります。


ただ、2週間ほど前に間違えてシステムファイルを削除してしまった為、fedoraが起動できなくなってしまいました。

気を取り直して、再度全てのアプリケーションをインストールしているのですが、ushareのTS再生が出来ない状態になってしまいました。
前回は、色々なDLNAアプリを入れたので、何処が違うのか分からず、途方にくれております。
mpeg-PSは再生できるのですが…。

何か気が付いた点があればまた教えてください。
ffmpeg
libupnp 1.6.4
libdlna 0.2.3
ushare-1.1a
前回と同じ組み合わせです。

毎度、質問ばかりで済みません。
よろしくお願いします。
Posted by dreamer at 2009年11月14日 12:11
すみません。書き方が悪かったですね。
今回の修正はushareだけでは完結せず、apache+perl CGIも使って実現したものです。

DLNAはいくつかのプロトコルを組み合わせて実現しているのですが、コンテンツ配信のところは普通のHTTPになっています。私はこの部分をapacheに任せ、他の部分をushareに任せるようにしました。

なので、今回の件には少なくともHTTPとCGIの知識は必要になります。ちょっと複雑で他の方に「こうすれば出来ますよ」とまとめるのは大変なので詳細については今はご容赦ください。
今度時間があれば他の方でも容易に実現出来るやり方が無いか調べてみたいと思います。(MiniDLNAも見てみます。)

参考までにお答えしておくと、

contentFeatures.dlna.org: DLNA.ORG_PN=MPEG_TS_HD_60_L2_ISO;DLNA.ORG_OP=01

の設定値はコンテンツ配信時にHTTPレスポンスのヘッダに追加するフィールドです。この設定はPSの場合でも有効です。

contentFeatures.dlna.org: DLNA.ORG_PN=MPEG_PS_NTSC;DLNA.ORG_OP=01

とすればBRAVIA W5では早送り・レジューム再生可能でした。

apacheを使っているのはushareのHTTPDの性能がイマイチだったからです。少なくとも私のビルド設定では複数同時接続に対応出来ておらず、BGMを再生させながらスライドショーをするということは出来ませんでした。また、JPEGを見る時にサムネイルが付いていないのが不便だったので付けるようにしたのですが、その時もapache+CGIでやった方がデバッグ等が楽でしたのでapacheを使うようにルートを変えています。
Posted by bali117 at 2009年11月15日 22:22
dreamerです。

ご解答大変ありがとう御座いました。
やはり、素人には難しいですね…。
もっと簡単に済むものだと思っていました。

私の方は、PSM(PS3 Media Server)も試してみましたが、
一長一短で、mpeg PSは、うまく早送り巻き戻しが出来ない。
mpeg TSは、リアルタイムエンコードされるので、動きが付いて来れない。ただし早送り、巻き戻しは出来る。

と言うことで、これ以上は難しくて対応できないと判断しました。

当面の間、mpeg PSは、miniDLNAで早送り、巻き戻しも出来てサクサク。
mpeg TSは、ushareで巻き戻し、早送りも出来ずにじっと我慢にすることにしました。

また、簡単に出来る設定などありましたら、ここで情報公開して頂けると、
私の様な素人は大変助かります。
色々とお付き合い頂、感謝!、感謝!です。

新しい情報を楽しみにしています。
Posted by dreamer at 2009年11月23日 17:56
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

[Linux] MediaTombをBRAIVAのDLNAクライアント機能に対応させるパッチ
Excerpt: パッチ(mediatomb-0.12.1)はこちら。 fc2 blogではアップロードできるファイルの名前&拡張子が限られているので、変な名前.txtになってます。 FTPと...
Weblog: morenet
Tracked: 2010-08-29 23:46
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。