デスクトップ環境付きのSteamクライアントをヘッドレスで実行し、ブラウザ、Moonlight、Steam Linkにゲームを配信するDockerイメージ。
steelbrain/ffmpeg-over-ip
GPUパススルーや共有ファイルシステムを使わず、任意のクライアントからTCPポート1つでリモートGPUマシン上のffmpegを実行できます。
- スター
- 1,192
- フォーク
- 41
- 未解決の Issue
- 6
- 最終コミット
- 15 時間前
これは何?
ffmpeg-over-ipを使うと、あるマシン上のアプリケーションから、GPUを搭載した別のマシン上でffmpegを実行できます。クライアントバイナリがffmpegの代わりとなり、コマンドライン引数をサーバーデーモンに転送します。サーバーではパッチ適用済みのffmpegが実行され、ファイルの読み書きはすべてクライアントにトンネルされます。入出力ファイルはクライアント側に置かれ、サーバーには保存されません。
このプロジェクトは、Dockerコンテナ、仮想マシン、リモートホストなど、直接GPUにアクセスするためにランタイム設定やPCIeパススルー、NFS/SMBマウントが必要になる環境を想定しています。サーバーで到達可能にする必要があるのはTCPポート1つだけで、クライアントからはアウトバウンド接続のみを行います。コマンドは共有シークレットを使ったHMAC-SHA256で認証されます。複数のクライアントが1台のサーバーに接続でき、それぞれに専用のffmpegプロセスが割り当てられます。
リリースバイナリには、jellyfin-ffmpegのパイプラインでビルドされたffmpegとffprobeが含まれ、NVENC、QSV、VAAPI、AMF、VideoToolboxなどのハードウェアアクセラレーションに対応しています。クライアントとサーバーは、Linux x86_64およびarm64、macOS、Windows x86_64向けに提供されています。
主な機能
- 01クライアントからリモートサーバーへ、TCPポート1つでffmpegとffprobeのコマンドを転送します。
- 02ファイルI/Oをクライアントにトンネルするため、共有ファイルシステムは不要です。
- 03NVENC、QSV、VAAPI、AMF、VideoToolboxなどのハードウェアアクセラレーションに対応しています。
- 04共有シークレットとHMAC-SHA256を使って、すべてのコマンドを認証します。
- 05複数のクライアントを同時に処理し、それぞれに専用のffmpegプロセスを割り当てます。
- 06stdoutとstderrをリアルタイムでストリーミングし、ffmpegの終了コードを返します。
ユースケース
- Dockerコンテナ内のJellyfinまたはEmbyサーバーから、別のホストにあるGPUをトランスコードに利用する。
- PCIeパススルーを使わずに、仮想マシンからホストのGPUを利用する。
- GPUを搭載していないNASやメディアサーバーから、GPUのあるマシンへトランスコードをオフロードする。
クイックスタート
- 1
GPUマシンにサーバーをインストール(Linux/macOS)
README の公式手順に従ってインストール - 2
GPUマシンにサーバーをインストール(Windows PowerShell)
README の公式手順に従ってインストール - 3
メディアサーバーのマシンにクライアントをインストール(Linux/macOS)
README の公式手順に従ってインストール - 4
メディアサーバーのマシンにクライアントをインストール(Windows PowerShell)
README の公式手順に従ってインストール
使う前に知っておきたいこと
- ライセンスは分割されています。fio/ と patches/ は GPL v3、その他は MIT です。
- セットアップには共有シークレットが必要です。また、GPUマシンでサーバーを、各メディアサーバーのマシンでクライアントを実行する必要があります。
トピック
よくある質問
- ffmpeg-over-ip とは?
- GPUパススルーや共有ファイルシステムを使わず、任意のクライアントからTCPポート1つでリモートGPUマシン上のffmpegを実行できます。 ffmpeg-over-ipを使うと、あるマシン上のアプリケーションから、GPUを搭載した別のマシン上でffmpegを実行できます。クライアントバイナリがffmpegの代わりとなり、コマンドライン引数をサーバーデーモンに転送します。サーバーではパッチ適用済みのffmpegが実行され、ファイルの読み書きはすべてクライアントにトンネルされます。入出力ファイルはクライアント側に置かれ、サーバーには保存されません。
- ffmpeg-over-ip は無料で使えますか?ライセンスは?
- ffmpeg-over-ip は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- ffmpeg-over-ip は今もメンテナンスされていますか?
- 活発にメンテナンス中。ffmpeg-over-ip の最終コミットは 2026年10月19日 です。
- ffmpeg-over-ip は何に使えますか?
- Dockerコンテナ内のJellyfinまたはEmbyサーバーから、別のホストにあるGPUをトランスコードに利用する。 PCIeパススルーを使わずに、仮想マシンからホストのGPUを利用する。 GPUを搭載していないNASやメディアサーバーから、GPUのあるマシンへトランスコードをオフロードする。
- ffmpeg-over-ip のインストール方法は?
- GPUマシンにサーバーをインストール(Linux/macOS) GPUマシンにサーバーをインストール(Windows PowerShell) メディアサーバーのマシンにクライアントをインストール(Linux/macOS) メディアサーバーのマシンにクライアントをインストール(Windows PowerShell)
- ffmpeg-over-ip はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/steelbrain/ffmpeg-over-ip
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
AIコーディングエージェント向けに、HTML・CSS・メディア・シーク可能なアニメーションを決定論的なMP4動画に変換するオープンソースフレームワーク。
OpenGL/ESで動作する、ビューティー機能と顔認識ベースのエフェクトを備えたクロスプラットフォームC++画像・動画フィルターライブラリ。
動画・音声・画像・字幕・メタデータの変換を細かく設定できる、FFmpegのネイティブデスクトップGUI。
yt-dlpを使って動画やプレイリストをダウンロードし、Plexなどがスキャンできるフォルダに整理するStreamlit製Web UI。
FFmpegのGPUまたはCPUエンコードで、動画を指定サイズに圧縮するセルフホスト型Web UI付きツール。