Web Analytics

acexy

⭐ 65 stars French by Javinator9889

acexy - Un proxy AceStream écrit en Go ! ⚡

Go Build Docker Release

Table des matières

Comment ça marche ? 🛠

Ce projet est une interface autour de l’API HTTP middleware AceStream, permettant à la fois la lecture en HLS et en MPEG-TS d’un flux.

J’en avais assez des limitations d’AceStream et de certains problèmes qui existent lors de la lecture d’un flux 📽. Par exemple, il est seulement possible de lire le même canal pour 1 seul client. Pour avoir plusieurs clients lisant différents flux, vous devez ajouter manuellement un pid unique par client. S’il y a une erreur pendant la transmission, le flux entier tombe, etc.

J’ai trouvé assez frustrante l’expérience d’utilisation d’AceStream dans un réseau domestique avec un seul serveur et plusieurs clients, pour tenter d’optimiser les ressources. Voici la topologie pour laquelle j’utilise AceStream :

Topologie AceStream pour mon réseau

Il y a quelques problèmes :

et saturé le réseau 📉. (ID du lecteur) unique associé 🔓. si la transmission s'arrête, elle s'arrête pour tous les clients ❌.

Fonctionnalités clés 🔗

En utilisant acexy, vous disposez automatiquement de :

Multiplexage de flux 🕎 : Le même flux peut être reproduit en même temps sur plusieurs clients*. Proxy ultra-rapide et minimaliste* ☄ écrit en Go !

Avec ce proxy, l'architecture suivante est maintenant possible :

acexy Topology

Utilisation 📐

acexy est disponible et publié sous forme d'image Docker. Assurez-vous d'avoir la dernière image Docker installée et disponible.

Le conteneur Acexy se connectera à un serveur AceStream. Vous devez déployer soit une image Docker et lier Acexy dans le même réseau ; soit avoir une version AceStream en fonctionnement sur votre hôte et exécuter Acexy en mode réseau hôte.

INFO : Un fichier docker-compose.yml est disponible dans le dépôt et
peut être utilisé directement pour lancer l'ensemble du bloc. C'est
la configuration recommandée à partir de la version v0.2.0.

Pour lancer le bloc de services, récupérez d'abord le fichier docker-compose.yml, et exécutez :

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

Si vous ne souhaitez pas utiliser Docker Compose, en supposant que vous avez déjà un serveur AceStream, une autre méthode pourrait être :

docker run --network host ghcr.io/javinator9889/acexy

REMARQUE : Pour votre commodité, un fichier docker-compose.yml est fourni avec
tous les paramètres ajustables possibles. Il devrait être prêt à l'emploi, et c'est
la méthode recommandée à partir de la version v0.2.0.

Par défaut, le proxy fonctionnera en mode MPEG-TS. Pour basculer entre eux, vous devez ajouter le flag -m3u8 ou définir la variable d'environnement ACEXY_M3U8=true.

REMARQUE : Le mode HLS - ACEXY_M3U8 ou le flag -m3u8 - est dans un état non testé.
Son utilisation est déconseillée et non garantie.

Il y a un seul point d'accès disponible : /ace/getstream qui prend les mêmes paramètres que l' API HTTP/Middleware AceStream standard. Par conséquent, pour lancer un flux, il suffit d'ouvrir le lien suivant dans votre application préférée - comme VLC :

http://127.0.0.1:8080/ace/getstream?id=dd1e67078381739d14beca697356ab76d49d1a2
dd1e67078381739d14beca697356ab76d49d1a2 est l’ID du canal AceStream.

Optimisation 🚀

Le moteur AceStream fonctionnant derrière le proxy dispose de plusieurs ports pouvant être exposés pour optimiser les performances. Ceux-ci sont, par défaut :

> REMARQUE : Ils peuvent être ajustés via la variable EXTRA_FLAGS - dans Docker - en
utilisant l’option --port.

L’exposition de ces ports devrait permettre d’obtenir une expérience de streaming plus stable. Notez que vous devrez également ouvrir ces ports sur votre passerelle.

Pour référence, voici comment vous devez exécuter la commande Docker :

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

Alternative 🧃

AceStream tente d’utiliser UPnP IGD pour se connecter à une machine distante. Le problème est que cela ne fonctionne pas à cause de la couche de pont ajoutée par Docker (voir : https://docs.docker.com/engine/network/drivers/bridge/).

Si vous exécutez une seule instance d’Acexy - et une seule instance d’AceStream - il devrait être sûr pour vous d’exécuter le conteneur avec le réseau hôte. Cela signifie :

> REMARQUE : Cela ne fonctionne que sur les environnements Linux. Voir https://docs.docker.com/engine/network/drivers/host/
pour plus d’informations.

La commande est assez simple :

docker run -t --network host ghcr.io/javinator9889/acexy
Cela devrait permettre à AceStream d'utiliser UPnP librement.

Options de Configuration ⚙

Acexy dispose de nombreuses options de configuration qui vous permettent de personnaliser le comportement. Toutes ont des valeurs par défaut qui ont été testées pour une expérience optimale, mais vous devrez peut-être les ajuster pour répondre à vos besoins.

ASTUCE PRO : Vous pouvez lancer acexy -help pour avoir une vue complète de toutes les options disponibles.

Comme Acexy est conçu pour être exécuté dans un conteneur Docker, toutes les variables et paramètres sont ajustables via des variables d'environnement.

Drapeau Variable d'Environnement Description Par Défaut
-license - Affiche la licence du programme et quitte -
-help - Affiche le message d'aide et quitte -
-addr ACEXY_LISTEN_ADDRAdresse où Acexy écoute. Utile lors de l'exécution en mode host. :8080
-scheme ACEXY_SCHEME Le schéma du middleware AceStream. Si vous avez configuré AceStream pour fonctionner en HTTPS, vous devrez ajuster cette valeur. http
-acestream-host ACEXY_HOST Où se trouve le middleware AceStream. Changez-le si vous avez besoin qu'Acexy se connecte à un moteur AceStream différent. localhost
-acestream-port ACEXY_PORT Le port pour se connecter au middleware AceStream. Changez-le si vous avez besoin qu'Acexy se connecte à un moteur AceStream différent. 6878
-m3u8-stream-timeout ACEXY_M3U8_STREAM_TIMEOUT Lors de l'exécution d'Acexy en mode M3U8, le délai d'attente pour considérer qu'un flux est terminé. 60s
-m3u8 ACEXY_M3U8 Activer le mode M3U8 dans Acexy. ATTENTION : Ce mode est expérimental et peut ne pas fonctionner comme prévu. Désactivé
-empty-timeout ACEXY_EMPTY_TIMEOUT Délai pour considérer qu’un flux est terminé une fois que des informations vides sont reçues du middleware. Inutile en mode M3U8. 1m
-buffer-size ACEXY_BUFFER_SIZE Tamponne jusqu’à buffer-size octets d’un flux avant de copier les données vers le lecteur. Utile pour une meilleure stabilité lors des lectures. 4.2MiB
-no-response-timeout ACEXY_NO_RESPONSE_TIMEOUT Temps d’attente pour que le middleware AceStream retourne une réponse pour un flux nouvellement ouvert. Ce délai doit être aussi court que possible sauf si votre connexion Internet est très mauvaise (c’est-à-dire : vous avez des latences très élevées). 1s

NOTE : La liste des options est étendue mais peut être obsolète. Référez-vous toujours à la
sortie -help du binaire Acexy en cas de doute.

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