현재 소유중인 USB TV 수신 카드(Dvico FusionHDTV5 USB Gold)를 Raspberry Pi에 연결하고, Tvheadend를 설정해서 다른 PC에서 TV 방송을 볼 수 있게 설정한다.
TV 수신 카드 설정
firmware 설치
$ sudo wget http://www.linuxtv.org/download/dvb/firmware/dvb-usb-bluebird-01.fw /lib/firmware
펌웨어 설치 후 USB TV 수신 카드를 다시 연결한다.
채널 검색
dvb-apps 패키지를 설치한다.
$ sudo apt-get install dvb-apps
아래와 같이 파일을 복사한다.
$ cp /usr/share/dvb/dvb-legacy/atsc/us-Cable-Standard-center-frequencies-QAM256 ~/kr-Cable-Standard-center-frequencies-8VSB
편집기로 kr-Cable-Standard-center-frequencies-8VSB파일을 열어서 QAM256을 8VSB로 변경한다.
변경이 끝나면 아래와 같은 방법으로 채널을 검색한다.
$ scan /usr/share/dvb/dvb-legacy/atsc/us-ATSC-center-frequencies-8VSB >> ~/channels.conf
$ scan ~/kr-Cable-Standard-center-frequencies-8VSB >> ~/channels.conf
검색 후 ~/channel.conf을 열어보면 아래와 비슷하게 채널 정보가 들어와 있다.
MBC:123012500:8VSB:17:20:1
:129012500:8VSB:33:36:2
:135012500:8VSB:17:20:1
"채널이름:주파수:나머지 정보" 형식을 가지고 있는데 이 중 주파수를 나중에 Tvheadend 설정시 사용한다.
Tvheadend 설정
저장소 추가
저장소에 대한 자세한 설명은 Tvheadend 사이트를 참고한다.
/etc/apt/sources.list.d 디렉토리에 아래와 같은 내용으로
tvheadend.list파일을 생성한다.
deb http://dl.bintray.com/tvheadend/deb jessie release
설정이 끝나면 package 정보를 업데이트 한다.
$ sudo apt-get update
설치
$ sudo apt-get install tvheadend
패키지를 설치할 때 관리자 id와 비밀번호를 입력해야 하는데, 원하는 값을 입력하면 된다. 나중에 다시 바꾸길 원하면 아래와 같은 명령을 입력하면 된다.
$ sudo dpkg-reconfigure tvheadend
설정
http://127.0.0.1:9981 로 접속해서 관리자 id와 비밀번호를 입력하면 관리 페이지를 볼 수 있다. 페이지 접속 후 Configuration 탭을 선택해서 필요한 설정을 해야 한다.
계정 설정
관리자 외에 TV를 시청할 계정을 추가한다.
iOS 기기에서 시청하기 위해서는
- Web Interface
- Streaming
- Advanced Streaming
설정을 check 해주고 Streaming Profile을
matroska로 설정해줘야 한다.
그리고 kodi를 위해서 HTSP Streaming 설정도 check 해준다.
TV adapters 설정
TV adapters 설정에 들어가서 LG Electronics LGDT3303 VSB/QAM Frontend: ATSC #0을 선택하고 Enabled을 check 해준다.
Networks 설정
Networks 설정에 들어가서 Add을 누르고 ATSC Network을 추가한다.
Muxes/Services 설정
Network 추가 후 Muxes 설정으로 자동으로 Mux가 추가되어 있고 Scan 결과가 나오는데 대부분 실패했다. 자동으로 추가된 Mux를 정리하고 위에서 검색한 주파수를 이용해 Mux를 등록한다.
등록한 Mux의 Scan 결과가 OK가 나오면 Services 탭에서 검색된 채널이 표시되는 것을 확인해야 한다. Services 에 추가된 것을 확인하면 EPG 설정을 해야 한다.
EPG 설정
https://nas.moe/archives/1010를 참고해서 설정한다.
우선 Tvheadend 설정 페이지에서 EGP Grabber 설정을 들어가 XMLTV 설정을 check 해준다.
그다음 n2xml.py 파일을 받아온다. 파일을 받아온 후 아래와 같이 /usr/local/bin에 복사한다.
$ sudo cp n2xml.py /usr/local/bin
$ sudo chmod +x /usr/local/bin/n2xml.py
파일 복사 후 하루에 한번 실행하도록 /etc/cron.daily/n2xml 파일을 만든다.
#!/bin/sh
N2XML=/usr/local/bin/n2xml.py
CHANLIST=/usr/local/etc/chanlist.json
XMLTVSOCK=/home/hts/.hts/tvheadend/epggrab/xmltv.sock
if [ -x $N2XML ]; then
if [ ! -f $CHANLIST ]; then
$N2XML -u 1 -e 1 --chanlist $CHANLIST > /dev/null 2>&1
fi
if [ -S $XMLTVSOCK ]; then
$N2XML -a --chanlist $CHANLIST -s $XMLTVSOCK > /dev/null 2>&1
fi
fi
파일을 만든 후 실행 속성을 부과한다.
$ sudo chmod +x /etc/cron.daily/n2xml
속성 부과 후 한번 실행해준다.
$ sudo /etc/cron.daily/n2xml
그 후에 Tvheadend 설정 페이지에서 logout 후 다시 login 한다. 그 다음 Channel 페이지에 가서 Channel을 추가하면 된다.
Tvheadend 클라이언트 설정
iOS
TvhClient앱을 설치하면 된다.
설치 후 Tvheadend 서버를 추가하면 아래와 같이 채널 목록이 표시된다.
채널을 선택하면 해당 채널에 대한 상세한 방송 정보가 표시된다.
Play을 선택하면 메뉴가 하나 뜨는데 내장된 VLC로 볼 수도 있고 외부 플레이어 (NPlayer)로 링크를 넘겨서 재생할 수도 있다.
내장 VLC로도 재생이 잘 된다.
Kodi
Windows, OS/X, Linux 에서는 Kodi를 설정해서 시청하는 것이 제일 편하다.
설정 - 애드온 - PVR 클라이언트 에서 Tvheadend HTSP Client을 설치하고 설정한다.
설정 - TV - 일반을 사용함으로 설정한다.
설정이 끝나면 첫 화면에 TV 관련 메뉴가 표시된다.
채널 목록을 보고 시청이 가능하다.
방송 정보도 한번에 볼 수 있다.