Web Analytics

acexy

⭐ 65 stars Korean by Javinator9889

acexy - Go로 작성된 AceStream 프록시! ⚡

Go Build Docker Release

목차

작동 방식 🛠

이 프로젝트는 AceStream 미들웨어 HTTP API를 감싸는 래퍼로, HLSMPEG-TS 스트림 재생을 지원합니다.

저는 AceStream의 제한 사항과 스트림 재생 시 발생하는 몇 가지 문제들에 지쳤습니다 📽. 예를 들어, 동일 채널을 단일 클라이언트만 재생할 수 있습니다. 여러 클라이언트가 다른 스트림을 재생하려면 각 클라이언트마다 고유한 pid를 수동으로 추가해야 합니다. 전송 중 오류가 발생하면 전체 스트림이 중단되는 등의 문제가 있습니다.

저는 단일 서버와 여러 클라이언트가 있는 홈 네트워크에서 AceStream을 사용하며 리소스를 최적화하려 했지만, 상당히 답답한 경험을 했습니다. 제가 사용하는 AceStream 네트워크 토폴로지는 다음과 같습니다:

내 네트워크용 AceStream 토폴로지

몇 가지 문제점이 있습니다:

네트워크 과부하를 초래합니다 📉.

주요 기능 🔗

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 플래그 - 는 테스트되지 않은 상태입니다.
사용을 권장하지 않으며 작동을 보장하지 않습니다.

사용 가능한 단일 엔드포인트는 /ace/getstream이며, 이는 표준 AceStream Middleware/HTTP API와 동일한 매개변수를 받습니다. 따라서 스트림을 실행하려면 선호하는 애플리케이션(예: VLC)에서 다음 링크를 열면 됩니다:

http://127.0.0.1:8080/ace/getstream?id=dd1e67078381739d14beca697356ab76d49d1a2
where dd1e67078381739d14beca697356ab76d49d1a2 는 AceStream 채널의 ID입니다.

최적화 🚀

프록시 뒤에서 실행 중인 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
That should enable AceStream to use UPnP freely.

Configuration Options ⚙

Acexy has tons of configuration options that allow you to customize the behavior. All of them have default values that were tested for the optimal experience, but you may need to adjust them to fit your needs.

PRO-TIP: You can issue acexy -help to have a complete view of all the available options.

As Acexy was thought to be run inside a Docker container, all the variables and settings are adjustable by using environment variables.

플래그 환경 변수 설명 기본값
-license - 프로그램 라이선스를 출력하고 종료 -
-help - 도움말 메시지를 출력하고 종료 -
-addr ACEXY_LISTEN_ADDRAcexy가 수신 대기하는 주소입니다. host 모드에서 실행할 때 유용합니다. :8080
-scheme ACEXY_SCHEME AceStream 미들웨어의 스킴입니다. AceStream을 HTTPS로 설정한 경우 이 값을 조정해야 합니다. http
-acestream-host ACEXY_HOST AceStream 미들웨어가 위치한 곳입니다. Acexy가 다른 AceStream 엔진에 연결해야 하는 경우 변경하세요. localhost
-acestream-port ACEXY_PORT AceStream 미들웨어에 연결할 포트입니다. Acexy가 다른 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 ---