LumeRecorder

나만의 서버로 라이브 TV 녹화

LumeRecorder는 집에서 직접 운영하는 작은 무료 오픈 소스 DVR 서버입니다. 무엇을 녹화할지는 Lume이 알려 주고, 녹화는 서버가 알아서 합니다. 모든 Apple 기기가 잠자기 상태여도 마찬가지입니다. 녹화본은 모든 기기의 Lume에서 재생되며, 아직 녹화 중인 것도 재생할 수 있습니다.

녹화는 Lume Pro에 포함됩니다. 서버 자체는 무료입니다.

준비물

  1. 1단계

    서버 시작하기

    컨테이너를 실행하는 방식을 고르세요. 어떤 방식이든 녹화본과 설정은 옆의 데이터 폴더에 보관되므로 업데이트 후에도 유지됩니다.

    새 폴더에 docker-compose.yml로 저장한 다음 그 폴더에서 시작하세요. 호스트 네트워크를 사용하면 Lume이 서버를 자동으로 찾습니다.

    docker-compose.yml
    services:
      lume-recorder:
        image: ghcr.io/bilipp/lumerecorder:latest
        container_name: lume-recorder
        restart: unless-stopped
        network_mode: host
        volumes:
          - ./data:/data
    docker compose up -d

    Synology, QNAP, Unraid, TrueNAS에서는 같은 파일을 시스템의 Docker 또는 Container Manager에 새 프로젝트로 붙여 넣을 수 있습니다.

    컨테이너 없이 실행하고 싶다면 Swift 6와 ffmpeg가 필요합니다. 소스에서 빌드하기을 참고하세요.

  2. 2단계

    페어링 코드 받기

    서버는 시작할 때 6자리 페어링 코드를 로그에 출력하고, 이후 10분마다 새 코드를 출력합니다. 현재 코드는 언제든 다음 명령으로 확인할 수 있습니다:

    docker exec lume-recorder lume-recorder pair

    Apple 도구를 사용한다면 대신 container exec lume-recorder lume-recorder pair를 실행하세요. NAS에서는 컨테이너 로그 화면에서도 코드를 볼 수 있습니다.

  3. 3단계

    Lume과 페어링

    1. Lume에서 설정 › 라이브 TV › 녹화 서버를 엽니다.
    2. 페어링하기 전에를 읽고 이해했습니다를 탭합니다.
    3. 이 네트워크의 서버에서 서버를 선택합니다. 목록에 없다면 주소 직접 입력을 탭하고 서버의 IP 주소(예: 192.168.1.20)를 입력한 뒤 연결을 탭합니다. 포트를 따로 지정하지 않으면 8090을 사용합니다.
    4. 서버의 페어링 코드를 입력하고 페어링을 탭합니다.

    한 번만 페어링하면 됩니다. 페어링은 iCloud를 통해 다른 Apple 기기와 동기화됩니다.

  4. 4단계

    녹화하기

    • 지금 녹화: 채널 메뉴나 플레이어에서 녹화를 선택합니다.
    • 나중에 녹화: 편성표에서 프로그램을 열고 녹화 예약을 선택합니다.
    • 시청: 라이브 TV 도구 막대나 설정 › 라이브 TV에서 녹화를 엽니다. Apple TV에서는 라이브 TV 사이드바에도 표시할 수 있습니다.

설정

docker-compose.yml의 environment 항목으로 변경합니다(Apple 도구에서는 -e NAME=value).

변수기본값설명
SERVER_NAME호스트 이름Lume에 표시되는 서버 이름.
PORT8090서버가 수신 대기하는 포트.
MAX_CONCURRENT4동시에 진행할 수 있는 녹화 수. 녹화마다 제공업체 연결을 하나씩 사용합니다.
MIN_FREE_GB2여유 공간이 이 GB 수보다 적으면 녹화가 시작되지 않습니다.
BONJOUR10이면 자동 검색을 끕니다. 자동 검색이 작동하지 않는 환경을 위한 옵션입니다.
TZUTC로그 타임스탬프의 시간대(예: 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으로 돌아가기