dms:ターミナルで動作するUPnP DLNAメディアサーバー、トランスコード対応
基本的なビデオトランスコーディングを含む UPnP DLNA デジタル メディア サーバー。 Panasonic Viera テレビ、いくつかの Android UPnP アプリ、および Chromecast でテストされました。
ひと目でわかる
- これは何?
- dms は Go で書かれた UPnP DLNA デジタルメディアサーバーで、ターミナルから実行し、ファイルシステム上のコンテンツを配信します。ffmpeg 等が PATH にあればトランスコードやサムネイルも提供します。
- 誰に向いている?
- dms はターミナルで動く DLNA サーバーで、README には基本操作、トランスコード用ヘルパー、FreeBSD サービスの説明がありますが、コマンドラインオプションや動的ストリームの生成方法は明記されていません。
- 商用利用できる?
- できます。BSD-3-Clause は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。最後のコミットは 34 日前です。
- 何の言語で書かれている?
- 主に Go です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月14日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
ターミナルで動作する UPnP DLNA メディアサーバー
dms は Go で実装された UPnP DLNA デジタルメディアサーバーです。ターミナルから実行し、ファイルシステムを直接コンテンツの供給元にします。既定では起動時のカレントディレクトリを利用し、指定されたパスがあればそこから配信します。SSDP コンポーネントは利用可能なすべてのネットワークインターフェースでブロードキャストと応答を行うため、ローカルネットワーク上のクライアントは追加設定なしでサーバーを発見できます。リポジトリのメタデータには Panasonic Viera テレビ、複数の Android UPnP アプリ、Chromecast でテストしたとありますが、README 本体にはテスト環境や結果の記述はありません。README にはサーバー実行中のスクリーンショットが2枚含まれていますが、それらが何を示すかの説明はありません。この節だけを見ると、dms の起動方法と発見方法は定義されているものの、コマンドライン引数や設定ファイル、ポート設定は触れられていません。
元のファイルとトランスコードされた代替ストリーム
dms は元のファイルをアドバタイズして配信するだけでなく、可能な場合はトランスコードした代替ストリームも提供します。README が例として挙げているのは mpeg2 PAL-DVD と、Chromecast 向けの WebM です。可能であればメディアのサムネイルも生成します。ビットレートや再生時間などのメディア情報を得るには ffprobe または avprobe を使い、ビデオのトランスコードには ffmpeg または avconv、ブラウズ時のサムネイル生成には ffmpegthumbnailer を使います。これらのプログラムは dms に与えられた PATH に存在する必要があり、足りない場合はその機能だけが無効になり、dms 自体は停止しません。README にはトランスコードの品質設定、コーデックのオプション、対応入力フォーマットの一覧はありません。実際にどの形式へ変換できるかは、実行環境にどのヘルパーが入っているかに依存します。
実行時に生成される動的ストリーム
dms は動的ストリーム、たとえば外部アプリケーションがリアルタイムに生成する rtsp ストリームの配信にも対応しています。README によると、これは外部アプリケーション、例えば ffmpeg の助けを借りて行われます。しかし、dms が外部ストリームをどうやって認識するのか、ヘルパーがどのプロトコルで出力することを想定しているのか、クライアントが動的ストリームをどう要求するのかは説明されていません。README が確定しているのは、この機能が存在し、外部プログラムに依存するということだけです。トランスコードの場合と同じく、ヘルパーは PATH に必要なので、ffmpeg 系統のツールが無い環境では動的ストリームを提供できません。動的ストリームの URL 形式、同時接続の可否、切断時の挙動についても README は触れていません。
Go からのインストールと実行
インストール手順は Go と $GOPATH が既に設定されていることを前提にしています。README が示すインストールコマンドは go install github.com/anacrolix/dms@latest の1つだけです。続けて、ffmpeg や avconv、ffmpegthumbnailer に依存する機能を使いたい場合は、それらを PATH に入れるよう求めています。サーバーを起動するコマンドは "$GOPATH"/bin/dms です。README には設定ファイル、コマンドラインオプション、環境変数の説明がありません。サーバーはカレントディレクトリまたは指定されたパスから配信すると書かれていますが、パスを渡す具体的な構文は示されていません。停止方法や、複数のネットワークインターフェースがある場合に SSDP を特定のインターフェースだけに制限できるかも未記載です。ポート番号、ログレベル、アクセス制御についても情報がありません。
FreeBSD サービスのセットアップ
FreeBSD では、リポジトリは helpers/bsd/dms にサービスファイルを用意しています。README はこれを /etc/rc.d または /usr/local/etc/rc.d にインストールし、/etc/rc.conf に dms_enable="YES" を追加するよう指示しています。必要に応じて dms_root と dms_user を設定し、メディアディレクトリとサービスを実行するユーザーを指定できます。README はこのサービスファイルがヘルパープログラム用に PATH を設定するかどうか、サービスログの保存方法やローテーションについては説明していません。FreeBSD 以外のオペレーティングシステム向けのサービス設定方法もなく、UPnP 発見に合わせたファイアウォールの設定についても触れられていません。
ライセンス、資金調達、リポジトリメタデータ
リポジトリのライセンスは BSD-3-Clause と表示されています。ライセンス抜粋では著作権は Matt Joiner(anacrolix@gmail.com)に帰属し、ソース形式とバイナリ形式の再配布・利用を許可しています。ただし、ソース配布は著作権表示を保持し、バイナリ配布は文書に同表示を再現し、組織名や貢献者名を無断で派生物の推薦に使わないことが条件です。ライセンスは明示的か暗示的かを問わず、商品性と特定目的への適合性を含む保証を否定し、損害賠償責任も負いません。README には GitHub Sponsors を通じた開発資金の支援を求める募金の節があり、具体的な要望があれば issues リストを参照するよう書かれ、Changelog と FAQ へのリンクもあります。バージョン番号、リリース頻度、セキュリティポリシーは示されていません。リポジトリメタデータによると現在 745 スター、114 フォーク、24 のオープン issue があり、アーカイブされていません。実施記録には対象版と入力条件を残し、成功した結果だけでなく失敗した場合の出力も保存します。設定を変更した前後で同じ確認を繰り返せるようにし、READMEに書かれた機能と自分の環境で確認できた事実を分けます。採用判断では、導入できたかだけでなく、更新、障害、切り戻し、権限、ライセンスを同じ担当者が追跡できるかを確かめます。
編集部の結論
dms はターミナルで動く DLNA サーバーで、README には基本操作、トランスコード用ヘルパー、FreeBSD サービスの説明がありますが、コマンドラインオプションや動的ストリームの生成方法は明記されていません。
コミュニティノート