Repolode
steelbrain

steelbrain/ffmpeg-over-ip

GPU 패스스루나 공유 파일 시스템 없이, 클라이언트에서 TCP 포트 하나만으로 원격 GPU 머신의 ffmpeg를 실행하세요.

스타
1,192
포크
41
열린 이슈
6
마지막 커밋
15시간 전

어떤 프로젝트인가요?

ffmpeg-over-ip를 사용하면 한 머신의 애플리케이션에서 GPU가 있는 다른 머신의 ffmpeg를 실행할 수 있습니다. 클라이언트 바이너리가 ffmpeg를 대신해 명령줄 인수를 서버 데몬에 전달하고, 서버 데몬은 패치된 ffmpeg를 실행하며 모든 파일 읽기와 쓰기를 클라이언트로 터널링합니다. 입력 파일과 출력 파일은 클라이언트에 그대로 남고 서버에는 저장되지 않습니다.

이 프로젝트는 Docker 컨테이너, 가상 머신, 원격 호스트처럼 GPU에 직접 접근하려면 런타임 설정, PCIe 패스스루 또는 NFS/SMB 마운트가 필요한 환경을 대상으로 합니다. 서버에서 접근 가능해야 하는 포트는 TCP 포트 하나뿐이며, 클라이언트는 아웃바운드 연결만 생성합니다. 명령은 공유 시크릿을 사용한 HMAC-SHA256으로 인증하며, 여러 클라이언트가 하나의 서버에 연결해 각각 별도의 ffmpeg 프로세스를 사용할 수 있습니다.

릴리스 바이너리에는 jellyfin-ffmpeg 파이프라인으로 빌드한 ffmpeg와 ffprobe가 포함되며, NVENC, QSV, VAAPI, AMF, VideoToolbox 등의 하드웨어 가속을 지원합니다. 클라이언트와 서버는 Linux x86_64 및 arm64, macOS, Windows x86_64에서 사용할 수 있습니다.

핵심 기능

  • 01클라이언트에서 원격 서버로 TCP 포트 하나를 통해 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. 1

    GPU 머신에 서버 설치 (Linux/macOS)

    README의 공식 안내에 따라 설치
  2. 2

    GPU 머신에 서버 설치 (Windows PowerShell)

    README의 공식 안내에 따라 설치
  3. 3

    미디어 서버 머신에 클라이언트 설치 (Linux/macOS)

    README의 공식 안내에 따라 설치
  4. 4

    미디어 서버 머신에 클라이언트 설치 (Windows PowerShell)

    README의 공식 안내에 따라 설치

사용 전 알아둘 점

  • 라이선스가 분리되어 있습니다. fio/와 patches/는 GPL v3이며, 나머지는 MIT입니다.
  • 설정하려면 공유 시크릿이 필요하며, GPU 머신에서 서버를 실행하고 각 미디어 서버 머신에서 클라이언트를 실행해야 합니다.

토픽

자주 묻는 질문

ffmpeg-over-ip은(는) 무엇인가요?
GPU 패스스루나 공유 파일 시스템 없이, 클라이언트에서 TCP 포트 하나만으로 원격 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 통계는 매일 갱신됩니다.

관련 프로젝트