tvheadend 설치와 채널(m3u) 등록 - 우분투 NAS ③

구형 노트북에 우분투 리눅스를 설치하여 TV 미디어 HTPC(home theater PC) 및 스트리밍(HTSP, Home Tv Streaming Protocol, TV 스트리밍 프로토콜)서버 구축하기 - tvheadend(티비헤드엔드) 설치와 채널 등록 ③

지난 포스트에서 tvheadend 설치를 위한 우분투 리눅스 설치 작업과 설치 후 꼭 설정해야 할 부분을 짚어보았다.




이제 tvheadend 설치를 위한 환경은 마련되었으니 오늘 포스트에서는 tvheadend 설치 및 m3u를 사용한 채널 등록에 대해 알아보겠다. 어떤 패키지를 설치하던 설치 전 시스템 업데이트가 있는지 있다면 업데이트 해주는 게 좋다.

시스템 업데이트

$sudo apt-get update
$sudo pat-get upgrage

우분투 시스템에서는 소위 deb이라는 패키지 관리 시스템을 도입돼 있다. 쉽게 말해 배포자 입장에서는 설치자의 여러 환경 등을 고려하여 deb시스템으로 배포하고 사용자 입장에서는 시스템의 deb정보를 바탕으로 쉽게 패키지를 관리하고 설치 및 업데이트가 가능하다. 

필자가 재미도 없고 다소 어려워 보이는 deb부분을 자세히 다루는 이유는 우분투에서 직접 지원하지 않는 tvheadend 등 기타 여러 패키지를 설치할 때 이 부분을 이해하고 있어야 설치 상 문제를 해결 할 수 있는 능력이 생기기 때문이다. 리눅스를 처음 접하는 분이라면 잘 이해가 가지 않더라도 그냥 이런게 있구나 정도로만 알고 가볍게 읽고 넘어가자.

아래 각 OS마다 버전별 여러가지 deb을 추가하는 방법을 설명해 놓았는데 자신의 OS가 우분투고 목적이 tvheadend 설치라면 바로 'Ubuntu PPA 방식을 이용한 tvheadend 설치'편으로 넘어가 tvheadend를 바로 설치할 수도 있다.

우분투(Ubuntu)를 비롯한 데비안(Debian)안 계열은 deb패키지 배포 시스템을 Fedora, CentOS는 spk라는 패키지를 설치 시 사용 한다. 주로 NAS장비들이 Fedora 및 CentOS를 기본 탑재함으로 *.spk로 배포되는 패키지가 있다면 이 계열의 리눅스라고 생각하면 된다.

우분투 소프트웨어 업데이트 시스템에 tvhedend deb추가하기

$sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61

위 명령 시 에러가 난다면 다음의 패키지 설치 후 다시 실행해 주자

$sudo apt-get install dirmngr
$echo "deb https://dl.bintray.com/tvheadend/deb bionic stable" | sudo tee /etc/apt/sources.list.d/tvheadend.list

위의 명령은 시스템에 소프트웨어 인증키를 생성하고 배포 패키지 deb을 시스템에 추가하는 작업이다. 아래 $echo로 시작하는 명령은 /etc/apt/sources.list.d/tvheadend.list에 deb https://dl.bintray.com/tvheadend/deb bionic stable라는 deb을 추가한다. 실제 /etc/apt/sources.list.d/tvheadend.list를 살펴보면 deb https://dl.bintray.com/tvheadend/deb bionic stable라는 라인이 추가 되어있다.

$sudo nano /etc/apt/sources.list.d/tvheadend.list

각 패키지 배포 리스트를 위와 같이 개별 관리 할 수도 있지만 우분투 deb패키지 관리 시스템에 직접 추가하여 사용 할 수도 있다.

$sudo nano /etc/apt/sources.list

위의 명령으로 /etc/apt/sources.list를 살펴보면 우분투에서 사용하는 각종 deb을 확인할 수 있다. 여기에 바로 deb https://dl.bintray.com/tvheadend/deb bionic stable을 추가하여 tvheadend패키지를 관리 할 수 있다.

지금까지의 내용을 요약하면 /etc/apt/sources.list.d/tvheadend.list에 관련 deb을 추가해서 사용 할 수도 있고 /etc/apt/sources.list에 통합하여 패키지를 관리 할 수도 있다는 얘기이다. 어느 쪽을 선택하든 결과는 똑같지만 필자는 모든 deb을 /etc/apt/sources.list로 통합하여 한 곳에서 관리하는 것을 추천한다.

tvheadend 설치를 위한 deb 추가 형식은

deb https://dl.bintray.com/tvheadend/deb [리눅스코드명] [tvheadend Component] 형태이다.

[리눅스코드명]

우분투는 16.04 LTS 버전부터 살펴보자면 코드 명이 Xenial, Yakkety, Zesty, Artful, Bionic 순이다. 자신이 사용하는 우분투의 코드명을 모를 경우는

$lsb_release -a

명령으로 버전부터 코드 명까지 정확히 알 수 있다.

모든 우분투의 버전 정보를 알고 싶다면 https://namu.wiki/w/우분투/버전 에서 확인 가능하다.

데비안 계열인 경우 jessie(8.x), stretch(9.x)가 가장 최근 버전의 코드 명이다. 데비안 계열은 라즈베리 파이(Raspberry Pi)에도 적용 할 수 있음으로 라즈베이리파이 이용자라면 알아 둘 필요가 있다.

[tvheadend Component]

정식 명칭은 'Repo Component'라고 한다. release > unstable > stable 등으로 구분하는데 뒤에 정확한 버전을 정보를 추가해서 사용 할 수도 있다. (예, stable-4.2, release-4.2 등) release는 말 그대로 모든 버전을 포함하고 unstable은 불안정(테스트) 버전 stable은 안정 버전을 뜻한다.

우분투 에서의 deb추가 예 (자신의 우분투가 Xenial이라면 Bionic대신 Xenial를 써야 할 것이다.)

deb https://dl.bintray.com/tvheadend/deb Bionic stable
deb https://dl.bintray.com/tvheadend/deb Bionic unstable
deb https://dl.bintray.com/tvheadend/deb Bionic release

라즈베리파이 및 데비안계열 리눅스 추가 예

deb https://dl.bintray.com/tvheadend/deb wheezy stable
deb https://dl.bintray.com/tvheadend/deb wheezy unstable

deb https://dl.bintray.com/tvheadend/deb jessie stable
deb https://dl.bintray.com/tvheadend/deb jessie unstable

deb https://dl.bintray.com/mpmc/deb raspbianstretch stable-4.2
deb https://dl.bintray.com/tvheadend/deb stretch release-4.2

위의 예들을 참고해 자신의 리눅스 시스템의 /etc/apt/sources.list에 tvhedend deb을 추가한다. 물론 자신의 리눅스 OS에 맞는 코드 명으로 수정해서 등록해야 함을 유의하자.

tvheadend 설치

시스템에 tvheadend 배포 deb을 추가했다면 이제 tvheadend를 설치한다.

$sudo apt update
$sudo apt install tvheadend

혹시 update 과정에서 다음과 같이 오류가 나면 'E: The method driver /usr/lib/apt/methods/https could not be found. N: Is the package apt-transport-https installed?'

다음을 설치한 후 다시 update 와 설치(install)를 다시 진행한다.

$ sudo apt-get install apt-transport-https

하나라도 조금 더 알려드리려고 여러가지 설명을 하고 있는데 사실 우분투 시스템이라면 다음의 방법이 가장 확실하다. 현재는 tvheadend 배포 서버 문제가 수정되었는지는 모르겠으나 실제 필자가 우분투(amd64)에 tvheadend를 설치할 당시(18.09) 옳은 deb을 추가하였음에도 관련 패키지에 접근 권한(403 forbidden)이 없다고 설치가 되지 않았다. 이것 때문에 OS를 몇 번이나 갈아타며 테스트 해봤지만 해결되지 않았다. tvheadend 배포 서버의 문제로 최종 결정을 내렸고 결국 Ubuntu PPA설치 방식으로 한방에 성공하였다.

Ubuntu PPA 방식을 이용한 tvheadend 설치

$sudo apt-add-repository ppa:mamarley/tvheadend-git-stable (안정버전) or
$sudo apt-add-repository ppa:mamarley/tvheadend-git (최신버전)

위의 둘 중 하나를 선택해 해당 명령을 준다. 설치 중 계속 할 거냐고 물어오면 꼭 대문자 'Y'를 선택하자.

$sudo apt update
$sudo apt install tvheadend

설치 도중 관리자 계정 설정 창이 뜬다.

적당한 계정 명을 정해주고 패스워드도 설정해 준다.

참고로 tvheadend의 각종 채널 정보가 저장되는 위치는 /home/hts/.hts/tvheadend/ 이다.

계정 설정을 완료하고 웹브라우저를 열고 http://[자신의IP or localhot]:9981로 접속한다. (예 http://192.168.10.25:9981)

tvheadend 채널 등록 하기

앞에서 설정한 관리자 계정으로 로그인 한다. 혹시 관리자계정 생성시 실수로 잘못된 패스워드 입력 등으로 로그인이 안된다면 다음의 명령으로 다시 관리자 계정을 생성할 수 있다.

$sudo dpkg-reconfigure tvheadend

혹시 시스템 재시작 시 tvheadend가 자동으로 시작되지 않는다면 다음의 명령으로 리눅스 시스템에 자동 시작을 활성화 시킬 수 있다.

$sudo systemctl enable tvheadend

참고로 tvheadend 프로세스의 시작, 정지, 재 시작은 다음과 같은 명령을 사용한다.

$sudo service tvheadend start
$sudo service tvheadend stop
$sudo service tvheadend restart

처음 실행시 tvheadend 위저드(Wizard)가 실행되는데 configuration에서 따로 설정 할 수 있음으로 그냥 'cancel'을 선택해준다.

위 그림대로 설정 후 마지막에 꼭 save를 한다.

add버튼을 클릭 한다.

IPTV Automatic Network를 선택하자.

Create bouquet(채널 묶음)을 체크해 주고 아래 Maxium # input streams에는 최대로 연결 할 수 있는 input을 입력해 주면 되는데 혼자 또는 가족들만 이용 할 계획이라면 3정도 넣어 주면 충분 하다. URL에 위와 같이 실제 m3u파일이 있는 경로와 파일명을 지정해 준다.

Character set : UTF-8, EIT time offset : UTC-9를 선택해 주자. 최종 확인하고 SAVE를 한다.

위와 같이 UGTV라는 네트워크 항목이 생겼다.

Muxes탭에서 scan 사항을 살펴본다. 제대로 된 m3u파일 이라면 IDLE : OK라고 뜬다. 혹시 한두 개 정도 FAIL로 뜨는 채널이 있다면 해당 항목에서 edit를 누르고 실제 채널 주소가 맞는지 다시 한번 확인해 주고 Scan status : IDLE에서 PEND로 바꿔준다. 맨 아래 save를 하자.

Scan status 는 PEND > ACTIVE > IDLE순으로 변한다. PEND(보류)로 바꿔주면 다시 해당 url의 채널 신호를 ACTIVE(검사)하고 IDLE로 바뀔 때 성공 여부가 표시된다.

필자가 처음 채널 등록 할 때 등록된 모든 채널이 FAIL로 뜬 적이 있는데 이 문제로 일주일 내내 고민했던 적이 있다. 문제는 m3u파일의 구조와 채널 url의 udp, rtp관계였다. 몇번을 시도했는데 계속 FAIL로 뜬다면 udp://로 시작하는 주소를 rtp://로 바꿔보라! 거짓말 같이 OK신호로 바뀐다.

m3u파일 생성에서 중요한 게 채널 정보이다. 일반 팟플레이어나 코디(kodi)에서는 재생이 문제가 없는 m3u파일이라면 다시 채널정보(채널넘버, epg정보id 등)를 포함하는 m3u파일로 새로 만들어 줄 필요가 있다. 이 부분은 나중에 따로 자세히 포스트 할 계획이다.



맨 아래 우측을 보면 muxes ~ of 181이라는 숫자가 보이는데 m3u에 등록된 채널 개수이다.

muxes 181개의 채널이 등록되었고 scan시 모두 ok가 떴다면 service탭에서도 181개의 채널이 표시되어야 한다. service탭에서는 등록된 채널을 활성/비활성을 할 수 있다. 위와 같이 enable 항목에서 체크를 해제하면 불필요한 채널 송출을 중지할 수 있다. 변경한 후에는 꼭 save를 해야 적용이 된다.

위의 화면은 실제 서비스 되고 있는 채널을 일반 유저가 코디(kodi)를 통해 시청하고 있는 정보이다. 관련해서 band width(대폭역)과 어떤 채널을 보고 있는지 관련 채널 정보를 확인 할 수 있다.

connections에서는 현재 코디의 HTSP로 접속한 사용자의 정보를 확인 할 수 있다. 앞의 x버튼을 눌러 접속을 강제로 끊을 수도 있다.

이상 tvheadend설치와 채널 등록에 대해 알아보았습니다. 다음 시간에는 tvheadend에 EPG정보를 넣는 방법에 대해 알아보겠습니다.


※   저작권 관련 안내
본 블로그의 모든 글과 사진 및 영상은저작권 보호를 받는 게시물 입니다. 본 블로그의 내용을 링크 및 인용 할 때에는 꼭 출처를 밝혀주세요. 게시자 허락없는 무단도용은 당신을 불행하게 만들 수도 있습니다.

당분간 서비스 업데이트 준비로 본페이지는 운영되지 않습니다. 정상화 되면 공지 하겠습니다.

당분간 서비스 업데이트 준비로 본 페이지는 운영되지 않습니다. 정상화 되면 공지 하겠습니다.