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


SONY GPS-CS1K
ドイター ズボンバンド
Garmin
GPSMAP60CSx
MAPLUS
ポータブルナビ
PSP