フリーの UPnP AV / DLNA サーバーを公開しました。
開発動機
- PS3 Media Server(以下PMS)は非常に高性能ですが、高性能故に動作が緩慢だったり、設定項目が多すぎて簡単に使えないというジレンマがあった。
- PMSでmp3配信を行うと、酷い文字化けに遭遇することが多かった。
- これがきっかけで我が家のライブラリは AAC に統一されつつある
- どうしても海外ソフトでは日本語対応が弱くなる
- 折角クライアントに PS3 を使うのに、生 ts の配信に難があったり、トランスコードに頭を悩ませるのはおかしい。
- foobar2000 + foo_upnp.dll では、ライブラリ内容を一気に配信しようとするため、数百エレメントを持つライブラリだとクライアント側が非常にしんどいことになる。
などなどです。
流石にネットワーク周りまで一から書き上げることは難しいと思っていたため、フリーのライブラリはないかしらと探していたところ、Platinum UPnP というライブラリがあり、ドキュメントは整備されていないもののサンプルプログラムが付属していたため、これを参考に書き上げました。
特徴
上記開発動機で書いた悩みを解消するのが最大の目的でしたので、それがそのまま特徴になります。
- 配信するフォルダと拡張子を指定するだけの簡単設定
- トランスコードや外部アプリケーションとの連携は行わない
- 生 ts 、 M2TS の配信にも対応
- mp3 の文字コード問題(Id3 latin1/SJIS問題)を解消
- 数百エレメントを持つ巨大ライブラリは分割して配信
- 配信エレメントは拡張子でフィルタリング、拡張子に対応する Mimetype はユーザー側で編集可能
- 要求がある度リアルタイムにディレクトリ構造を読みに行くため、録画鯖にも最適
などなど。
対象
PS3 (とXBOX)がメインターゲットですが、そのほかの DLNA クライアントでも動作は可能だと思います。実際、手元では
- foobar2000 + foo_upnp.dll
- Skifta on Android 2.3
で正常動作を確認しています。ただし、最近発売されている薄型テレビでは各社独自の実装が行われているようですので、これについては動作するかどうかは一切検証していませんし、わかりません。
開発環境・依存関係
Platinum を使用している関係上、ライセンスは GPL v2 (もしくはそれ以降)となります。