Web Analytics

acexy

⭐ 65 stars Japanese by Javinator9889

acexy - Goで書かれたAceStreamプロキシ! ⚡

Go Build Docker Release

目次

仕組みは? 🛠

このプロジェクトは AceStreamミドルウェアHTTP APIのラッパーで、 HLSおよび MPEG-TSのストリーム再生を可能にします。

AceStreamの制限やストリーム再生時に存在するいくつかの問題に疲れていました📽。例えば、 1つのクライアントのみ同じチャンネルを再生可能です。 複数のクライアントで異なるストリームを再生する場合は、 クライアントごとにユニークなpidを手動で追加しなければなりません。 送信中にエラーが発生すると、ストリーム全体が停止してしまうなどです。

家庭内ネットワークで単一のサーバーと複数のクライアントを使い、 リソースを最適化しようとした際のAceStreamの使用感はかなりフラストレーションが溜まりました。 私がAceStreamを使用しているトポロジーは以下の通りです。

AceStream Topology For My Network

いくつかの問題があります:

ネットワークが飽和します📉。

主な特徴 🔗

acexy を使用すると、自動的に以下が利用可能です:

ストリーム多重化 🕎:同じストリームを 複数のクライアントで同時に* 再生可能。 Go 言語で書かれた 超高速、最小限のプロキシ* ☄!

このプロキシを使うことで、以下のアーキテクチャが可能になります:

acexy トポロジー

使い方 📐

acexy は Docker イメージとして提供されています。最新の Docker イメージがインストールされて利用可能であることを確認してください。

Acexy コンテナは AceStream サーバーに接続します。Docker イメージをデプロイし、同じネットワーク内で Acexy をリンクするか、ホスト上で稼働中の AceStream バージョンに接続し、Acexy をホストネットワークモードで実行する必要があります。

情報:リポジトリには docker-compose.yml ファイルがあり、これを使って全体のブロックを直接起動できます。これは v0.2.0 以降推奨される設定 です。

サービスブロックを起動するには、まず docker-compose.yml ファイルを取得し、次のコマンドを実行してください:

wget https://raw.githubusercontent.com/Javinator9889/acexy/refs/heads/main/docker-compose.yml
docker compose run -d

Docker Composeを使用したくない場合、すでにAceStreamサーバーをお持ちであれば、別の方法としては以下のようになります:

docker run --network host ghcr.io/javinator9889/acexy
注意: 便宜上、すべての調整可能なパラメータを含む docker-compose.yml ファイルが提供されています。
すぐに実行できる状態であり、v0.2.0 以降の推奨される開始方法です。

デフォルトでは、プロキシはMPEG-TSモードで動作します。モードを切り替えるには、 -m3u8 フラグを追加するか、ACEXY_M3U8=true 環境変数を設定する必要があります

注意: HLSモード - ACEXY_M3U8 または -m3u8 フラグ - は未検証の状態です。
使用は推奨されず、正常に動作する保証はありません。

利用可能なエンドポイントは1つだけです: /ace/getstream であり、標準の AceStream Middleware/HTTP API と同じパラメータを受け取ります。 したがって、ストリームを実行するには、お好みのアプリケーション(例: VLC)で以下のリンクを開くだけです。

http://127.0.0.1:8080/ace/getstream?id=dd1e67078381739d14beca697356ab76d49d1a2
where dd1e67078381739d14beca697356ab76d49d1a2 is the ID of the AceStream channel.

最適化 🚀

プロキシの背後で動作しているAceStreamエンジンには、パフォーマンスを最適化するために公開できる複数のポートがあります。デフォルトでは以下の通りです:

> 注意:これらはDocker内のEXTRA_FLAGS変数を使い、--portフラグで調整可能です。

これらのポートを公開することで、より安定したストリーミング体験が得られるはずです。ゲートウェイ側でもこれらのポートを開放する必要があることに注意してください。

参考までに、Dockerコマンドの実行例は以下の通りです:

docker run -t -p 8080:8080 -p 8621:8621 ghcr.io/javinator9889/acexy

代替案 🧃

AceStream は内部で UPnP IGD を使用してリモートマシンに接続しようとします。 問題は、Docker によって追加されたブリッジ層のためにこれが機能しないことです (参照: https://docs.docker.com/engine/network/drivers/bridge/)。

Acexy の単一インスタンスと AceStream の単一インスタンスを実行している場合、 ホストネットワーキングでコンテナを実行することは安全です。これは以下を意味します:

> 注:これは Linux 環境でのみ動作します。詳細は https://docs.docker.com/engine/network/drivers/host/ を参照してください。

コマンドは非常に簡単です:

docker run -t --network host ghcr.io/javinator9889/acexy
AceStreamがUPnPを自由に使用できるようになるはずです。

設定オプション ⚙

Acexyには動作をカスタマイズできる多数の設定オプションがあります。すべてに 最適な体験を得るためにテストされたデフォルト値がありますが、必要に応じて 調整する必要があるかもしれません。

プロのヒント: acexy -help を実行すると、利用可能なすべてのオプションを
完全に確認できます。

AcexyはDockerコンテナ内で実行されることを想定しているため、すべての変数と設定は 環境変数を使って調整可能です。

フラグ 環境変数 説明 デフォルト
-license - プログラムのライセンスを表示して終了 -
-help - ヘルプメッセージを表示して終了 -
-addr ACEXY_LISTEN_ADDR Acexyが待ち受けているアドレス。hostモードで実行する際に便利です。 :8080
-scheme ACEXY_SCHEME AceStreamミドルウェアのスキーム。AceStreamをHTTPSで動作するように設定している場合は、この値を調整する必要があります。 http
-acestream-host ACEXY_HOST AceStreamミドルウェアの場所。異なるAceStreamエンジンに接続する必要がある場合は変更してください。 localhost
-acestream-port ACEXY_PORT AceStreamミドルウェアに接続するポート。異なるAceStreamエンジンに接続する必要がある場合は変更してください。 6878
-m3u8-stream-timeout ACEXY_M3U8_STREAM_TIMEOUT AcexyをM3U8モードで実行する際、ストリームが終了したと見なすタイムアウト時間。 60s
-m3u8ACEXY_M3U8 AcexyでM3U8モードを有効にします。警告: このモードは実験的であり、期待通りに動作しない場合があります。 無効
-empty-timeout ACEXY_EMPTY_TIMEOUT ミドルウェアから空の情報が受信された後、ストリームが終了したと見なすためのタイムアウト時間。M3U8モードでは無意味です。 1m
-buffer-size ACEXY_BUFFER_SIZE プレイヤーにデータをコピーする前に、ストリームの最大buffer-sizeバイトをバッファリングします。再生の安定性向上に役立ちます。 4.2MiB
-no-response-timeout ACEXY_NO_RESPONSE_TIMEOUT 新しく開かれたストリームに対してAceStreamミドルウェアが応答を返すまでの待機時間。インターネット接続が非常に悪くない限り(例:非常に高い遅延がある場合)、できるだけ短くする必要があります。 1s

注意: オプションのリストは膨大ですが、古くなっている可能性があります。疑問がある場合は常にAcexyバイナリの-help出力を参照してください。

--- Tranlated By Open Ai Tx | Last indexed: 2026-03-29 ---