본문 바로가기
NAS Systems/Synology NAS

시놀로지 NAS에 Docker(도커)를 이용하여 Tvheadend 설치하기

by 아이티잡스
반응형




참고사이트


https://hub.docker.com/r/wiserain/tvheadend/


https://github.com/wiserain/docker-tvheadend/blob/epgkr/assets/how-to-run-on-synology.md


https://hinco114.github.io/2017/07/12/nas_TVHeadend_setting/



위의 사이트를 참고하였습니다. 저도 리눅스나 유닉스를 모르기 때문에, 초보자의 마음에서 설치를 하면서 발생하는 문제점 및 스크린샷을 제공함으로써 여러분들에게 많은 도움을 주려고 합니다. 저도 처음에는 막막하기 그지 없었지만, 구글링을 통해 하나하나씩 해나가니 문제를 해결할 수 있었습니다. 여러 군데 나누어져있는 지식들을 한 곳에 모으려고 노력을 하였습니다. 


우선 도커의 장점은 epg2xml 자동으로 설치되고, epg 그래머모듈까지 자동으로 설치됩니다. 아수스 공유기에 tvheadend를 올릴때, 애를 먹었는데 한방에 해결해준다니 고맙더라구요. 그래서 도커로 설치하려고 합니다. 아~참!! 도커는 최신 시놀로지 나스에만 설치된다고 하니, 도커의 설치 가능 유무를 먼저 확인하시는 것이 좋을 듯 싶습니다. 



시놀로지에서 Docker Tvheadend 설치방법 3가지




1. Docker 명령어 사용하는 방법


2. Docker - Compose 사용 방법


3. Synology DSM 사용방법


위의 3가지 방법이 있습니다. 저는 1/2번은 제외하였습니다. 리눅스 명령어를 잘 모르기 때문이고, 다른 블로그를 따라하면 되지만, 이해가 되지 않을 것 같아 3번의 방법으로 도커에 Tvheadend를 설치하고자 합니다. 


DSM 6.1.4-15217 Update 5 버전이네요. 참고하세요.



DSM을 이용하여 Tvheadend 설치하기


1. 패키지 센터 ▶ 모두 ▶ 제 3자 에서 Docker를 찾아 설치합니다. 





2. 왼쪽 메뉴탭을 클릭하여 도커를 실행합니다. 





3. 도커 레지스트리 항목에서 wiserain/tvheadend 을 검색합니다. 




화살표를 누르면, 웹사이트로 이동하여 도커 이미지에 대한 정보를 확인할 수 있습니다. 

https://hub.docker.com/r/wiserain/tvheadend/







4. 위 항목을 선택하고, 다운로드를 누릅니다. 태그 선택 창이 나오는데, 드롭다운 메뉴를 펼쳐서 stable 버전을 설치하시기 바랍니다. latest 최신 개발버전이므로, 불안정할 수 있으니 초보자인 저는 그냥 안정된 버전으로 설치합니다. 






5. 다운로드 완료후, 이미지 항목으로이동합니다. 이 이미지를 이용하여, tvheadend 프로그램이 동작하는 시스템 가상공간이라고 불리는 Container를 생성합니다. 이미지를 선택한 후, 실행을 클릭합니다. 마치 맥북에서 패러럴즈를 사용하는 것과 같다고 생각하시면 됩니다. 






6. 컨테이서 생성화면이 나타납니다. 먼저 일반설정을 진행합니다. 먼저 컨테이너 이름을 입력합니다. 





7. 고급 설정항목을 클릭하면, 아래와 같은 팝업 창이 나타납니다. 

   자동 재시작 활성화, 바탕화면에 바로가기 생성에 체크를 해줍니다. 

   시놀로지가 불가피하게 꺼졌다고 하더라도, tvheadend는 자동으로 재실행하기 위해서입니다.



잠시 파일스테이션으로 이동합니다.







8. 컨테이너 내부 저장 경로와 실제로 사용하는 공간을 서로 연결해 주어야 합니다. 



   /volume1/docker/wiserain-tvheadend/config : tvheadend 모든 설정이 저장되는 곳 

 

   /volume1/docker/wiserain-tvheadend/recording : 녹화 기능을 사용할 경우 임시 폴더


   /volume1/docker/wiserain-tvheadend/epg2xml : epq2xml 정보 저장을 위한 폴더 


파일 스테이션을 실행하여 위의 3개 폴더를 생성해야 합니다. 

volume1 폴더는 눈에는 안보이지만, 하드 드라이브 위치입니다. 

기본은 volume1 으로 되어 있습니다. 



폴더 3개를 모두 만들었습니다. 






9. 폴더를 생성하였으니, 이제는 Docker에서 생성한 폴더 추가하고, 각각의 폴더를 도커에 연결하기 위해 마운트 해줘야 합니다. 


이미지 ▶ 일반설정 ▶ 고급설정 ▶ 볼륨 항목으로 이동합니다. 


폴더 추가를 클릭합니다. 




3개의 폴더를 추가하고, 아래와 같이 마운트 경로를 입력해줍니다.





10. 네트워크 항목으로 이동하면, Docker 호스트와 동일한 네트워크 사용에 체크를 해주세요. 이유는 도커는 멀티캐스트 패킹 라우팅을 할 수 없으므로, 반드시 Hosted networks를 사용해야만 한다고 합니다. 낮은 버전에서는 지원이 불가하다고 합니다. 

체크하지 않을 경우, 채널 서비스가 생성되지 않습니다. 









11. 포트는 기본 포트를 사용합니다. 추가로 공유기에서 포트포워딩을 해줘야겠군요. 아하!!! 근데 도커 호스트와 동일한 네트워크를 사용할 때에는 포트 설정이 필요없다고 알림창이 뜨면서, 활성화가 되지 않는 군요. 








12. 환경 변수 항목으로 이동합니다. 이 항목의 변수들은 가상 시스템에 전달되어집니다. 

TZ: 시스템이 사용할 시간대, 시간대가 우리나라와 맞아야 EPG 시간차가 발생하지 않는다.

PZID/PUID: 컨테이너 내부의 앱이 외부 볼륨에 접근 권한을 주는 것인데, 시놀로지에서 도커는 root 권한으로 동작하므로, 0일 것입니다. ssh 들어가서 권한을 확인해보시기 바랍니다. 저는 이 항목이 없어서 직접 입력해주었습니다. 



시놀로지 버전이 업데이트되면서, 다양한 환경변수들이 추가되었습니다. 나머지 옵션을 그대로 두고, 위의 옵션만 정확하게 입력하여 줍니다. 






13. 이 마법사가 완료 후, 컨테이너 실행을 체크한 후 적용을 클릭합니다. 





14. 비디오 형식을 보면, tvheadend 앱이 실행중임을 확인할 수 있다. tvh 앱을 여러개 만들어, on/off/delete 할 수 있습니다. 혼자 해보시면 쉽습니다. 하지만 그냥 하나만 두는게...









15. 또한 선택후에, 세부사항을 클릭해보시면, 자세한 정보를 확인할 수 있습니다. 






Tvheadend 접속 및 설정하기 



16. dock_tvheadend 설치 완료 후,  http://로컬시놀주소:9981로 접속하면, Tvheadend 초기 설정화면이 보입니다. 






17. 아래 웹인터페이스 egp 언어를 한국어로 설정하고, 마법사를 종료합니다. 일단 마법사를 나가고, 설정하는 것이 훨씬 효율적이기 때문입니다. 아수스 간이 나스때 설정을 좀 해보아서 쉽게 진행할 수 있었습니다. 






18. 설정 ▶ 일반 ▶ 기본 

     Tvheadend 이름을 정하고, 인터페이스 레벨은 전문가

     언어설정은 Korean, 웹 유저 인터페이스 Korean, 테마는 접근을 해주세요. 

     접근을 설정하면, 화면 가독성을 뛰어나더라구요. 




Stable 버전을 설치하였습니다. Tvheadend 4.2.5 버전이네요. 






19. 설정 ▶ 채널/EPG ▶ EPG 그래버 모듈 이동합니다. 

     아수스 간이 나스에서 정말 난해한 부분이었는데, 먼저 확인해보도록 합니다. IPTV 3사 모두 내부 XMLTV 그래버가 있습니다. 자신의 IPTV 회사에 맞는 그래버만 켜서 사용하시면 됩니다. 저는 SK브로드밴드라서, SK만 켜서 설정 저장을 해줍니다.      






20. 설정 ▶ 사용자 ▶ 접근항목

   위로 이동하면, 사용자 아이디를 생성할 수 있고, 각종 권한을 설정할 수 있습니다. 관리자 권한으로 줄 거라, 최대한의 권한을 주시기 바랍니다. 







21. 설정 ▶ 사용자 ▶ 암호 

    사용자 이름과 암호를 설정합니다. 앞서 했던 아이디와 동일하게 입력합니다. 







22. 이제 생성된 아이디로 상단의 (로그인)을 클릭하여, 로그인을 합니다.






23. 로그인해서 들어가면, 생성된 아이디만 관리자 권한으로 만들기 위해, * 아이디에 대한 관리자 항목에 체크 해제를 합니다. 






24. 설정 ▶ 일반 ▶ 기본 

    시계 업데이트 항목 : 업데이트 시간/NTP 드라이버 활성 모두 체크 !!!!





25. 설정 ▶ 녹화 ▶ 디지털 비디오 녹화 프로필

    파일 이름 옵션을 잘 보시고, 원하는 항목에 체크하세요. 녹화 파일 생성시 중요하겠죠?






26. 설정 ▶ 녹화 ▶ 타임시프트 

    예전에 TV에 타임머신 기능이 있었죠? 이것과 비슷한 기능입니다. 티비를 보면서, 앞뒤로 이동할 수 있어 아주 유용한 기능이지만, 시스템 리소스를 조금은 잡아 먹겠죠?

    설정은 아래 그림처럼 하시면 됩니다. 







27. 설정 ▶ DVB 입력 ▶ 네트워크  

     항목으로 이동하여, 추가를 클릭한 후, IPTV 자동 네트워크를 선택합니다. 






IPTV 자동 네트워크 추가 설정하는 방법 


네트워크 이름 : SK BTV

최대 입력 스트림 : 3~4개 정도함. 많을 경우 공유기 부하 상당함!!!

URL : m3u파일이 있는 경로를 적어줍니다. 

채널 묶음 생성/TSID에 값으로 0 허용은 반드시 체크해줍니다. 

캐릭터셋 : UTF-8 한글 깨짐 방지하기 위해

나머지 설정은 그림 보시고 따라해보시기 바랍니다. 







위의 m3u 파일 경로 때문에 한시간 넘게 헤메였습니다. 파일 경로가 맞는거 같은데, 자꾸 안되더라구요. 물론 권한 설정도 해보았지만, 

http:// 혹은 file:// 두가지로 접속이 된다고는 하지만, http://는 안되는 것 같더라구요. 된다는 것도 이상하긴 합니다. 아이디와 비밀번호를 입력하지 않고 접속하는게 안될테니...


어쨋든 아래 도커내 tvheadend 설치 위치를 보고 알아내었습니다. 설치 위치가 기본 설치와는 아마도 조금 다르겠죠? 

결론은 docker 내부 폴더에 tvheadend가 설치되었는데, 그 위치가 /config 입니다. 그래서 아래와 같이 경로를 설정하였더니 되더군요. 파일의 경로를 어디서부터 시작해야할지가 매우 난감하였습니다. 리눅스나, 유닉스를 모르는 초보자에게는....ㅜ.ㅜ

file:///config/channels/btv.m3u










28. 위와 같이 생성을 하면, 아래 그림처럼 채널을 스캔하게 됩니다. 스샷을 보면서, 자신의 설정이 맞는지 확인해보시기 바랍니다.   



총 먹스가 보이고, 서비스가능한 채널이 216이네요. 







서비스 채널이 보입니다. 




위의 서비스 채널은 아래 그림처럼 설정을 해주어야만, 

서비스 항목에 채널들이 보입니다. 




지상파만 EGP 정보가 나오는 것 같습니다. 









29. 아래 그림을 보시면, 정상적인 채널의 EPG 그래버 채널은 5개만 존재합니다. 








30. EPG 그래버 채널에 모든 채널 EPG가 나오도록 epg2xml.json을 수정해야 합니다. 

     /volume1/docker/wiserain-tvheadend_vaapi/epg2xml/epg2xml.json

    파일 탐색기에서 위의 파일을 찾아, 마우스 우클릭하여 텍스트 편집기로 Open합니다. 







그냥 아래 텍스트 파일을 복사하여, 전체 붙여넣기 후, 저장하시면 됩니다. 


{

    "###_COMMENT_###" : "",

    "###_COMMENT_###" : "epg 정보를 가져오는 설정 파일",

    "###_COMMENT_###" : "사용하는 ISP 선택 (ALL, KT, LG, SK)",

    "MyISP": "SK",

    "###_COMMENT_###" : "### # My Channel EPG 정보 가져오는 채널 ID ###",

    "###_COMMENT_###" : "### 채널 ID를 , 로 구분하여 입력 ###",

    "MyChannels" : " 1, 2, 4, 5, 6, 7, 8, 10, 11, 14, 15, 18, 19, 20, 21, 23, 24, 26, 28, 31, 32, 35, 36, 38, 39, 40, 41, 42, 43, 46, 47, 48, 49, 50, 51, 52, 55, 56, 57, 58, 59, 60, 61, 62, 63, 68, 71, 72, 73, 74, 75, 78, 79, 80, 82, 83, 84, 85, 86, 87, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 103, 104, 105, 107, 108, 110, 111, 112, 117, 118, 119, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 133, 134, 135, 136, 137, 138, 139, 141, 142, 143, 144, 147, 148, 149, 150, 151, 153, 154, 156, 157, 159, 160, 164, 165, 166, 167, 168, 169, 170, 171, 173, 177, 178, 179, 183, 184, 185, 186, 192, 193, 196, 198, 199, 200, 201, 202, 205, 207, 208, 212, 213, 215, 216, 218, 219, 220, 222, 223, 225, 228, 229, 230, 231, 232, 233, 234, 235, 237, 238, 239, 240, 241, 244, 245, 246, 247, 250, 251, 255, 256, 257, 258, 260, 263, 264, 265, 266, 268, 272, 273, 275, 278, 280, 281, 282, 283, 284, 285, 286, 289, 290, 291, 293, 294, 296, 297, 299, 301, 302, 303, 307, 309, 311, 312, 313, 314, 315, 316, 318, 319, 320, 321, 363, 364, 370, 372, 373, 374, 409, 411, 412, 414, 415, 442, 445, 446, 453, 457, 458, ",

    "###_COMMENT_###" : "output 셋팅은 (d, o, s) 셋중에 하나로 선택한다",

    "###_COMMENT_###" : " d - EPG 정보 화면 출력",

    "###_COMMENT_###" : " o - EPG 정보 파일로 저장",

    "###_COMMENT_###" : " s - EPG 정보 소켓으로 출력",

    "output": "d",

    "###_COMMENT_###" : "### TV channel icon url (ex : http://www.example.com/Channels) ###",

    "default_icon_url": "",

    "###_COMMENT_###" : "### 제목에 재방송 정보 출력 ###",

    "default_rebroadcast": "n",

    "###_COMMENT_###" : "#### 제목에 회차정보 출력 ###",     

    "default_episode" : "y",

    "###_COMMENT_###" : "### EPG 정보 추가 출력 ###",

    "default_verbose" : "y",

    "###_COMMENT_###" : "### XMLTV_NS 정보 추가 출력 ###",

    "default_xmltvns" : "n",

    "###_COMMENT_###" : "### epg 데이터 가져오는 기간으로 1에서 7까지 설정가능 ###",

    "default_fetch_limit" : "2",

    "###_COMMENT_###" : "### epg 저장시 기본 저장 이름 (ex: /home/tvheadend/xmltv.xml) ###",

    "default_xml_file" : "xmltv.xml",

    "###_COMMENT_###" : "### # External XMLTV 사용시 기본 소켓 이름 (ex: /home/tvheadend/xmltv.sock) ###",

    "default_xml_socket" : "xmltv.sock",

    "###_COMMENT_###" : ""

}






그런데 저장이 되지 않습니다. 권한이 부족하다고 합니다. 






폴더 및 파일에 대한 권한이 문제일 겁니다. 

먼저 사용자 그룹에서 사용자의 권한을 모두 줍니다. 






그리고  해당 폴더로 가서, 마우스 우클릭 -> 속성탭 선택합니다. 

권한탭으로 이동하여, 그냥 생성을 클릭하여 권한을 추가해주면 됩니다. 



Winscp로 해도 되나, 솔직히 더 간단하지만 DSM으로 설명해보았습니다. 







31. 아래와 같이 EPG 그래버 채널이 업데이트 되었습니다. Mychannel이 모두 추가되었음을 확인하실 수 있습니다. 이제 거의 다 왔습니다. 










32. 설정  채널/EPG  EPG 그래버 

    채널 이름 업데이트, 채널 번호 업데이트 체크해주시고, OTA EPG 그래버 작동 클릭!!!









33. 전자 프로그램 가이드가 정상적으로 보입니다 !!!! 진짜 대박입니다. 







이제 모두 완성하였으니, 다양한 환경에서(PC/모바일/태블릿)에서 접속하는 방법에 대해서 포스팅해보도록 하겠습니다. 


솔직히 저는 나스를 한 목적이 TVHEADEND 기능이 30프로 정도 차지했는데, 이렇게 성공하니 마음이 정말 기쁘네요 



반응형

 

댓글