LumeRecorder
나만의 서버로 라이브 TV 녹화
LumeRecorder는 집에서 직접 운영하는 작은 무료 오픈 소스 DVR 서버입니다. 무엇을 녹화할지는 Lume이 알려 주고, 녹화는 서버가 알아서 합니다. 모든 Apple 기기가 잠자기 상태여도 마찬가지입니다. 녹화본은 모든 기기의 Lume에서 재생되며, 아직 녹화 중인 것도 재생할 수 있습니다.
녹화는 Lume Pro에 포함됩니다. 서버 자체는 무료입니다.
준비물
항상 켜져 있는 기기
NAS, 미니 PC, 홈 서버, 64비트 Raspberry Pi 또는 잠자기에 들지 않는 Mac. Docker 이미지는 Intel/AMD와 ARM에서 실행됩니다.
Docker
Docker 또는 Docker Desktop, Apple 실리콘 Mac이라면 Apple의 container 도구. 대부분의 NAS에는 Docker가 기본 탑재되어 있습니다.
디스크 공간
스트림은 다시 인코딩하지 않고 들어오는 그대로 저장됩니다. HD 채널은 보통 시간당 몇 GB를 차지합니다.
같은 네트워크
Lume이 서버를 찾고 녹화본을 재생할 수 있도록 서버와 Apple 기기는 같은 홈 네트워크에 있어야 합니다.
1단계
서버 시작하기
컨테이너를 실행하는 방식을 고르세요. 어떤 방식이든 녹화본과 설정은 옆의 데이터 폴더에 보관되므로 업데이트 후에도 유지됩니다.
새 폴더에
docker-compose.yml로 저장한 다음 그 폴더에서 시작하세요. 호스트 네트워크를 사용하면 Lume이 서버를 자동으로 찾습니다.services: lume-recorder: image: ghcr.io/bilipp/lumerecorder:latest container_name: lume-recorder restart: unless-stopped network_mode: host volumes: - ./data:/datadocker compose up -dSynology, QNAP, Unraid, TrueNAS에서는 같은 파일을 시스템의 Docker 또는 Container Manager에 새 프로젝트로 붙여 넣을 수 있습니다.
Docker Desktop을 사용하는 Mac이나 Windows PC에서는 호스트 네트워크 대신 포트를 공개합니다.
docker-compose.yml로 저장한 뒤 시작하세요.services: lume-recorder: image: ghcr.io/bilipp/lumerecorder:latest container_name: lume-recorder restart: unless-stopped ports: - "8090:8090" volumes: - ./data:/data environment: BONJOUR: "0"docker compose up -dDocker Desktop은 네트워크에 서버를 알릴 수 없으므로 Lume에서 주소를 직접 입력해야 합니다. 로그인 시 Docker Desktop이 시작되도록 설정해 두세요.
Apple 실리콘 Mac에서는 Docker 대신 Apple의
container도구를 사용할 수 있습니다.container system start mkdir -p ~/LumeRecorder-data container run -d --name lume-recorder \ -p 0.0.0.0:8090:8090 \ -v ~/LumeRecorder-data:/data \ -e BONJOUR=0 ghcr.io/bilipp/lumerecorder:latest컨테이너는 가벼운 VM에서 실행되므로 Lume에서 Mac의 주소를 직접 입력해야 합니다. 녹화가 예약되어 있는 동안에는 Mac이 잠자기에 들지 않게 하세요.
컨테이너 없이 실행하고 싶다면 Swift 6와 ffmpeg가 필요합니다. 소스에서 빌드하기을 참고하세요.
2단계
페어링 코드 받기
서버는 시작할 때 6자리 페어링 코드를 로그에 출력하고, 이후 10분마다 새 코드를 출력합니다. 현재 코드는 언제든 다음 명령으로 확인할 수 있습니다:
docker exec lume-recorder lume-recorder pairApple 도구를 사용한다면 대신
container exec lume-recorder lume-recorder pair를 실행하세요. NAS에서는 컨테이너 로그 화면에서도 코드를 볼 수 있습니다.3단계
Lume과 페어링
- Lume에서 설정 › 라이브 TV › 녹화 서버를 엽니다.
- 페어링하기 전에를 읽고 이해했습니다를 탭합니다.
- 이 네트워크의 서버에서 서버를 선택합니다. 목록에 없다면 주소 직접 입력을 탭하고 서버의 IP 주소(예:
192.168.1.20)를 입력한 뒤 연결을 탭합니다. 포트를 따로 지정하지 않으면 8090을 사용합니다. - 서버의 페어링 코드를 입력하고 페어링을 탭합니다.
한 번만 페어링하면 됩니다. 페어링은 iCloud를 통해 다른 Apple 기기와 동기화됩니다.
4단계
녹화하기
- 지금 녹화: 채널 메뉴나 플레이어에서 녹화를 선택합니다.
- 나중에 녹화: 편성표에서 프로그램을 열고 녹화 예약을 선택합니다.
- 시청: 라이브 TV 도구 막대나 설정 › 라이브 TV에서 녹화를 엽니다. Apple TV에서는 라이브 TV 사이드바에도 표시할 수 있습니다.
설정
docker-compose.yml의 environment 항목으로 변경합니다(Apple 도구에서는 -e NAME=value).
| 변수 | 기본값 | 설명 |
|---|---|---|
SERVER_NAME | 호스트 이름 | Lume에 표시되는 서버 이름. |
PORT | 8090 | 서버가 수신 대기하는 포트. |
MAX_CONCURRENT | 4 | 동시에 진행할 수 있는 녹화 수. 녹화마다 제공업체 연결을 하나씩 사용합니다. |
MIN_FREE_GB | 2 | 여유 공간이 이 GB 수보다 적으면 녹화가 시작되지 않습니다. |
BONJOUR | 1 | 0이면 자동 검색을 끕니다. 자동 검색이 작동하지 않는 환경을 위한 옵션입니다. |
TZ | UTC | 로그 타임스탬프의 시간대(예: Asia/Seoul). |
변경한 뒤에는 docker compose up -d를 다시 실행하세요.
문제 해결
Lume이 서버를 찾지 못합니다
Lume이 로컬 네트워크를 사용할 수 있는지 확인하세요(iPhone과 iPad: 설정 › 개인정보 보호 및 보안 › 로컬 네트워크). 자동 검색은 Linux의 호스트 네트워크에서만 작동합니다. Docker Desktop, Apple 도구, 브리지 네트워크 또는 별도의 VLAN을 사용한다면 주소 직접 입력을 탭하고 기기의 IP 주소를 입력하세요.
NAS에서 이미 자체 Bonjour 서비스가 실행 중입니다
한 기기에서 검색 서비스 두 개가 실행되면 서로 충돌합니다. BONJOUR를 0으로 설정하고 주소로 서버를 추가하세요. NAS 자체 서비스로 서버를 알리는 방법은 LumeRecorder README에 나와 있습니다.
페어링 코드가 거부됩니다
코드는 10분마다 바뀌므로 현재 코드를 확인하세요. 잘못된 코드를 다섯 번 입력하면 1분 동안 페어링이 잠깁니다.
시청하는 동안 녹화가 실패합니다
서버는 제공업체에 별도의 연결을 엽니다. 요금제가 동시 연결을 하나만 허용한다면 시청과 녹화를 동시에 할 때 실패할 수 있습니다. 제공업체에서 연결 한도를 늘리거나 겹치지 않게 하세요.
공간 부족이나 녹화 수 초과로 녹화가 실패했습니다
디스크 공간을 확보하거나 MIN_FREE_GB를 낮추세요. 제공업체가 더 많은 연결을 허용한다면 MAX_CONCURRENT를 높이세요.
서버가 재시작되면 어떻게 되나요?
진행 중이던 녹화는 서버가 돌아오면 짧은 공백을 두고 다시 이어집니다. 꺼져 있는 동안 시간이 지난 예약은 실패로 표시됩니다.
업데이트
docker-compose.yml이 있는 폴더에서 새 이미지를 받고 다시 시작하세요. 녹화본과 페어링은 데이터 폴더에 그대로 남습니다.
docker compose pull && docker compose up -d모든 옵션, HTTP API, 소스 코드는 GitHub의 LumeRecorder 저장소에 있습니다.
← Lume으로 돌아가기