브라우저, Moonlight, Steam Link로 게임을 스트리밍할 수 있는 헤드리스 Steam 클라이언트 Docker 이미지
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
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 포트 하나만으로 원격 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 기반 Streamlit 웹 UI로 동영상과 재생목록을 다운로드해 미디어 서버용 폴더에 정리합니다.
FFmpeg로 GPU 또는 CPU 인코딩을 사용해 동영상을 목표 파일 크기로 줄이는 셀프 호스팅 압축기입니다.