11.Nas_1


새창 작성 수정 목록 링크 Edit G카랜다 HDD HDD HDD 게시물 주소 복사


추천_성공)EPG 기능이 포함된 docker-tvheadend 설치 사용기

♨ 카랜더 일정 :
  • 링크

  • 첨부

  • 컨텐츠 정보

    본문

    Synology에서 docker-tvheadend 실행 방법


    (wiserain/docker-tvheadend)

    문서는 Synology DSM에서 docker-tvheadend 실행하는 방법을 설명한다.

    작성 시점이 오래 되어 상세 내용은 조금 다를 있으니

     README 내용을 우선으로 한다.

    1) putty접속 자동으로 docker용 tvheadend 설치 하기

    ============= 시놀로지 도커 이용 자동으로 tvheadend 설치 하기 ========

    1)xmltv.xml 만들기 =======================

    시놀로지 작업스케쥴러에 추가하여 xmltv.xml의 epg파일을 만듬니다

    /usr/bin/php /volume1/web/epg2xml/epg2xml.php -l 3 -o /volume1/web/epg2xml/xmltv.xml


    2)dcoker용 tvheadend 자동 설치 ( 버전및 폴더 수정 : 레지스터 wise 검색 다운로드 태그선택 버전)=========

    #wiserain/tvheadend:stable-4.2.6-39 설치 폴더 만들기

    mkdir /volume1/web/epg2xml

    mkdir /volume1/video/recordings

    mkdir /volume1/docker

    mkdir /volume1/docker/tvheadend

    mkdir /volume1/docker/tvheadend/wiserain-tvheadend_stable-4.2.7-39

    mkdir /volume1/docker/tvheadend/wiserain-tvheadend_stable-4.2.7-39/config

    #도커 컨테이너만들기

    docker run -d \

    --name=wiserain-tvheadend_stable-4.2.7-39 \

    --network=host \

    -v "/volume1/web/epg2xml:/epg2xml" \

    -v "/volume1/video/recordings:/recordings" \

    -v "/volume1/docker/tvheadend/wiserain-tvheadend_stable-4.2.7-39/config:/config" \

    -e PUID=0 -e PGID=0 -e TZ=Asia/Seoul \

    -e EPG2XML_VER=web_epg2xml \

    wiserain/tvheadend:stable-4.2.7-39


    3) putty에서 docker 접속하기 ====

    docker ps

    # 확인하여 id변경

    docker exec -it 614df905fce5 bash


    4)도커 접속후 epg그래버모듈 putty에서 복사 후 만들기 ====

    cp tv_grab_docker_cat* /usr/bin

    chmod 777 /usr/bin/tv_grab_docker_cat*

    chmod +x /usr/bin/tv_grab_docker_cat*


    5) 도커에서 해당버전 tvheadend 재시작후 tvheadend 접속

    6) http://192.168.0.11:9981

    ===================

    상기 사용버전 확인및 다운 하지 안아도  됩

    3232235521_1546225678.0619.png

    3232235521_1546225824.4218.png

    3232235521_1546225961.4497.png

    ====================================

    최종 버전은 내용 수정 상위 참조

    ====================================


    2)DSM GUI 이용하는 방법 사이트 참조 자료

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

    사이트는 참조만 하고 DSM 패키지 접속 docker 조회 설치 합니다

    wiserain/docker-tvheadend 장점은 epg2xml 설치가 자동으로 epg그래머모듈까지 자동으로 설치 됩니다

     

    상기 사이트 기준으로 저의 시스탬기준 dsm6.1 으로 설치 사례 입니다.

    []docker tvheadennd 설치시 참조 
    >> 폴더를 3 개 만들고 docker 에서 마운트 합니다. 
    /volume1/docker/wiserain-tvheadend/recordings 는 /recordings 
    /volume1/docker/wiserain-tvheadend/epg2xml 는 /epg2xml 
    /volume1/docker/wiserain-tvheadend/config 는 /config 
    []환경변수 추가  PGID PUID 

     >> PGID 와 PUID 를 0 으로 입력 합니다.DSM 6.1.4-15217 Update 3 사용중입니다

    ==========

    최종 설치 버전

    3232235521_1513701488.723.png

    3232235521_1540392223.7724.png

     삭제후 재설치

    연속 error없이  화면 가끔 끊기는 증상 없네요

    3232235521_1513701601.8575.png

    3232235521_1513701697.5746.png

    docker-tvheadend 정보만  참조 하세요

    그리고 아래 설치 참조 드립니다.

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


    이미지 태그 네이밍 규칙

    • latest: 최신 이미지 버전. 대부분의 유저에게 권장 됨. 새로운 기능을 체험할 수 있는 개발 버전으로 약간 불안정할 수 있다. 비유를 들자면 Firefox나 LineageOS의 Nightly 빌드, 아니면 iOS의 Public Beta와 유사하다.
    • ver-build과거 이미지 버전으로 tvheadend 버전을 따른다. 예를 들어 4.1-2533.
    • stable: 최신 tvheadend release 버전 참고
    • vaapi: latest 빌드에서 vaapi 관련 옵션을 활성화 한 버전 (실험적)
    • testing: docker 이미지 테스트 버전 (개발용)

    네트워크 모드

    docker는 멀티캐스트 패킷 라우팅이 안되기 때문에 tvheadend를 이용해 IPTV를 보기 위해서는 무조건 hosted network를 사용해야 한다. 일부 낮은 docker engine 버전(예를 들어 Synology DSM 5.2)에서는 지원하지 않으니 참고. hosted network란 포트 포워딩이나 매핑을 하지 않고 호스트의 네트워크에 그대로 붙인다는 의미이므로 tvheadend가 사용하는 포트를 바꾸고 싶다면 앱 실행 시 옵션을 주어서 변경해야 한다. docker에서는 다음과 같이 환경 변수를 추가해주면 된다. RUN_OPTS=--http_port <port number> --htsp_port <port number>

    환경변수

    docker-tvheadend의 동작을 제어하는 환경변수와 가능한 옵션을 설명한다. 참고로 환경변수는 컨테이너 생성 시점에 그 값이 고정 되므로 변경을 원한다면 컨테이너를 삭제/재생성 해야한다. 먼저 필수로 지정해야하는 환경변수=기본값는 다음과 같다.

    • PUIDPGUI: 컨테이너 내부의 앱이 외부의 볼륨에 접근할 수 있도록 하는 권한에 대한 것이다. 여기를 참고하여 설정한다. 적절하게 설정하지 않으면, EPG 관련 스크립트가 동작하지 않거나 녹화가 안될 수 있다.
    • TZ="Asia/Seoul": docker-tvheadend에 적용되는 timezone 설정이다. 이게 제대로 안되면 EPG에 시간차가 발생한다.
    • EPG2XML_VER="latest": 이 값을 활용해서 epg2xml (latest release)을 다운로드 받는다. 만약 과거 버전에 머무르고 싶다면 값을 지정해 준다. 예를 들어 EPG2XML_VER=1.2.1 더이상 epg2xml 폴더의 내용이 변경되지 않기를 원한다면 값을 비워둔다. EPG2XML_VER=.

    추가로 사용 가능한 환경변수는 다음과 같다.

    • UPDATE_CHANNEL: epg2xml의 채널 정보를 담고 있는 Channel.json 파일을 업데이트 한다. 더이상 업데이트 하지 않기를 원하면 false를 입력한다.
    • RUN_OPTS=--http_port <port number> --htsp_port <port number>: tvheadend 바이너리에 직접 전달되는 실행옵션. 대표적으로 tvheadend의 동작 포트를 바꿀때 쓸 수 있다.
    • TVH_URL=http://username:password@localhost:9981tvhProxy는 tvheadend의 영상 스트림을 Plex의 DVR (녹화)에서 활용할 수 있도록 도와주는 프록시이다. tvheadend와 같이 내장했으므로 localhost가 맞고 그 외 username, password, port는 자신의 환경에 맞게 수정해서 사용한다. 참고로 이것을 활성화 하면 컨테이너 시작시 여러가지 의존성 설치를 위해 시간이 약간 걸린다.

    어쩌면 도움이 될지도 모르는 정보

    1. 컨테이너를 시작할 때마다 /etc/cont-init.d/와 /etc/services.d/ 안의 스크립트를 이용해서 초기화를 진행하고 프로그램을 실행한다. 무슨 일이 일어났는지 궁금하거나 생각대로 되지 않으면 로그를 확인하자.
    2. epg2xml 동작 언어는 php이다. 성능은 python이 약간 좋지만 그 차이가 미미한 반면, docker로 deploy할 때 php가 꽤 유용한 기능을 제공한다.
    3. epg2xml.json은 경로에 파일이 없는 경우에만 다운로드하여 설치하고 경로에 있으면 원래 것을 보존한다. 따라서 같이 업데이트하고 싶으면 파일들을 지우고 컨테이너 삭제/생성/실행하면 된다. 그것도 싫으면 그냥 수동으로 받아서 복사/붙여넣기 하면 된다.
    4. 예전에는 내부적으로 epg2xml를 실행할 때 다음의 arguments -i {KT/SK/LG} -d를 썻으나 이제는 -i {KT/SK/LG} -o /epg2xml/xmltv.xml로 실행한 다음 cat /epg2xml/xmltv.xml로 불러온다. 중간에 파일로 저장하는 과정이 추가된 것이다.
    5. EPG를 /epg2xml/xmltv.xml에 한 번 저장하는 이유는 이 경로를 웹서버로 노출시켜 다른 앱에서도 가져다 쓰기 쉽게 하기 위함이다. php 내장 기능을 이용해 /epg2xml 폴더의 내용이 http://<tvheadend ip>:9983/으로 서비스 되므로, tvheadend가 실행되면서 주기적으로 파일로 저장해 놓은 EPG 정보를 http://<<tvheadend ip>:9983/xmltv.xml로 접속하여 쓸 수 있다. 원래는 tvhProxy를 위해 짜낸 기능이지만 여러모로 유용하게 사용할 수 있을 것이다.

    ========

    성공)EPG 기능이 포함된 docker-tvheadend 설치 사용기

    참조사이트

    http://archive.fo/fiRrC#selection-749.0-749.41

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

    1) 패키지 센터로 가서 Docker를 설치한다.

    3232235521_1513070308.5662.png


    2) wiserain/tvheadend 검색 합니다

    3232235521_1513070473.0215.png


    3)다운로드 합니다

    3232235521_1513070620.7672.png

    4) 조금있으면 실행 메뉴를 클릭 가능합니다

    3232235521_1513070748.7152.png

    5) 고급 설정을 합니다

    3232235521_1513070940.8354.png

    -다음 

    3232235521_1513070997.5929.png

    - 적용

    3232235521_1513071018.1281.png


    - 볼륨 폴더 생성 설정

    중요)  docker/???tvheadnd/  형식의 docker 밑에 ????tvheadend 가 있어야 합니다 


    3232235521_1513071542.3306.png

    3232235521_1513166755.2087.png

    마운트 폴더 생성후 마운트 이름 지정

    - 컨테이너 내부의 공간(Mount path)과 실제 우리가 사용하는 공간을 서로 링크해준다. /config는 tvheadend의 모든 설정이 저장되는 곳이며, /recordings의 경우는 녹화하게 될 경우를 위한 template 폴더이다. 이런 식으로 원하는 경로를 마운트하고 docker container에서 가져다 쓰면 된다.


    - 방법 > 파일 추가로 폴더 생성후 폴더 추가로 마운트 경로 입력 합니다.

    * /config  경로  마운트는  docker/???tvheadnd/config

    같이 마운트 폴더를  아래 3가지 설정 마운트 합니다 

    중요) 아래 폴더의 마운트 경로는  docker/???tvheadnd/ 밑에 있어야 합니다 

    /config  는 설정값 저장 경로

    /recordings  는 녹화저장 경로

    /epg2xml  는  epg의 epg2xml.json 설정값 불러 옵니다

    3232235521_1513166453.4039.png



    - 네트워크는 호스트와 동일 네트워크 사용에 체크. 이전 글에서도 언급했지만, docker는 멀티캐스트 패킷 라우팅이 안된다. 적어도 현재는...

    따라서 tvheadend는 무조건 hosted network를 사용해야 한다. 일부 낮은 버전에서는 지원하지 않으니 참고. (예를 들면 DSM 5.2)

    *** 중요) tvheadend는 무조건 hosted network >> 이것 하지않으면 때문에  채널list가  보이지 않음

    3232235521_1513072289.3767.png


    - 이제 환경변수를 입력해준다. 이 변수는 그대로 가상 시스템에 전달되어 활용 가능하다.
    먼저 TZ은 시스템이 사용할 시간대 설정이다. 이게 제대로 안되면 EPG에 시간차가 발생한다.
    3232235521_1520172215.9348.png

    []docker tvheadennd 설치시 참조 
    []환경변수 추가 
    PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PGID  root
    PUID root
    PS1 $(whoami)@$(hostname):$(pwd)$ 
    HOME /config
    TERM xterm
    EPG2XML_VER latest ---> 
    EPG_PORT 9983
    TZ  Asia/Seoul
    으로 입력 합니다.(9개)
    3232235521_1520698170.9408.png
    주) epg2xml 의 자신의 파일을 영구히 설정값유지 계속 사용하기
       -> 자신의 채널 정보 유지하기 상태입니다
     3232235521_1540391936.0723.png
      자신의 채널 정보 유지하기 상태 변경하기
    3232235521_1540392121.5667.png
    ======
    정상적인 epg그래버 채널 5개 만 나타 납니다.
    3232235521_1515249886.5364.png
    === /volume1/docker/wiserain-tvheadend_vaapi/epg2xml/epg2xml.json 수정 합니다.====
        "MyChannels" : "60, 110, 111, 122, 164",
       에 채널 추가 합니다
       < dsm / file station에서 수정 변경 합니다 >
    [ 추가 정보 ... 더보기) ]
    뷰PDF 1,2



    office view

    관련자료

    댓글목록

    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    서비스 채널번호가나오지 않음

    profile_image

    jjyun님의 댓글

    no_profile jjyun 쪽지보내기 자기소개 아이디로 검색 전체게시물 아이피 (211.♡.77.53) 작성일

    다른 곳 자료를 보면 시스템 변수 지정하는 곳에서 실행명령에 명령어를 추가해야 한다고 되어 있었는데,
    그 명령어 필요 없나요?
    다른 곳  -- https://github.com/wiserain/docker-tvheadend/

    profile_image

    shimss11q님의 댓글의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (223.♡.173.156) 작성일

    예  명령어  필요 없이 ui형식으로 설치 가능합니다
    윈격이라 정리는  집에도착후  정리
    서비스 채널문제가 있어  해결완료 됬습니다

    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (223.♡.173.156) 작성일

    문제점해결 네트워크 host가 필수
    공유기 포트포워트  해당아이피 9981~9983
    재정리 등록 하겠습니다

    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    저의경우 아래와 같이 사용 설정 했습니다 ( 제작자의 의도와 같은지 ???) ...내용 변경


    1) Docker 호스트와 동일한 네트워크 사용 체크....기본 check 해주세요 

      tvheadend는 무조건 hosted network  추가 설정에 PGID 0  ,PUID 0  추가


     2) 다음과 볼룸에서 폴더 만드시고 마운트이름

    /volume1/docker/wiserain_tvheadend/config 에 

    docker/wiserain_tvheadend/config는  /config 볼륨 마운트 설정


    /volume1/docker/wiserain_tvheadend/recordings 에

    docker/wiserain_tvheadend/recordings는 /recordings 볼륨 마운트 설정


     /volume1/docker/wiserain_tvheadend/epg2xml에 

    docker/wiserain_tvheadend/epg2xml/는 /epg2xml 볼륨 마운트 설정


    3) 기본 적으로 epg2xml와 epg그래버모듈 tv_grab_kr_sk를 제공하기 때문에

      >> epg2xml.json 파일에서 Mychannels 만 추가 하면 끝

      저의 홈피 첨부 파일 사용시는 이하 참조 하기고 이하는 관련 무// 참조만 하세요

     web 폴더에 /web/epg2xml 폴더 만드시고  상기 2곳에 epg2xml 관련 파일  복사 합니다  /volume1/web/epg2xml/ 

    /volume1/docker/wiserain_tvheadend/epg2xml


    4) iptv.m3u 파일을 /web/epg2xml/skiptv.m3u 복사 합니다  (http://192.168.0.11/epg2xml/skiptv.m3u 동작 확인) 


    5) tvheadend의 네트워크설정에  http://192.168.0.11/epg2xml/skiptv.m3u  지정 합니다

     http://192.168.0.11/epg2xml/skiptv.m3u


    6) 기본적으로 제공되기 tv_grab_kr_sk 를  제공되기 때문에  이하 관련무

      별도 사용하는 epg그래머모듈 사용시

     /web/epg2xml /tv_grab_kr_sk 를 수정후 복사 동일 이름으로 권한변경후 /usr/bin 복사 합니다 

    (저는 web 형식으로 내부 epg그래버모듈 사용으로

    wget -O -http://192.168.0.7/epg2xml/epg2xml-web.php )


    >> 저는 이상과 같이 하니 정상적으로 전자가이드 채널이 설정한대로 나오네요>>

    (참고)  전체 설치 참조 자료

    https://11q.kr/g5s/bbs/board.php?bo_table=s11&wr_id=3396

    설정 사용기 등록 하였습니다...즐거운 시간 되세요...

    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일
    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (223.♡.188.13) 작성일
    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (223.♡.188.13) 작성일

    Code  Issues 0  Pull requests 0  Pulse
    tv_grab_file

    #!/bin/bash
    dflag=
    vflag=
    cflag=
    if (( $# < 1 ))
    then
      cat ~/.xmltv/tv_grab_file.xmltv
      exit 0
    fi

    for arg
    do
        delim=""
        case "$arg" in
        #translate --gnu-long-options to -g (short options)
          --description) args="${args}-d ";;
          --version) args="${args}-v ";;
          --capabilities) args="${args}-c ";;
          #pass through anything else
          *) [[ "${arg:0:1}" == "-" ]] || delim="\""
              args="${args}${delim}${arg}${delim} ";;
        esac
    done

    #Reset the positional parameters to the short options
    eval set -- $args

    while getopts "dvc" option
    do
        case $option in
            d)  dflag=1;;
            v)  vflag=1;;
            c)  cflag=1;;
            \?) printf "unknown option: -%s\n" $OPTARG
                printf "Usage: %s: [--description] [--version] [--capabilities] \n" $(basename $0)
                exit 2
                ;;
        esac >&2
    done

    if [ "$dflag" ]
    then
      printf "tv_grab_file is a simple grabber that just read the ~/.xmltv/tv_grab_file.xmltv file\n"
    fi
    if [ "$vflag" ]
    then
      printf "0.1\n"
    fi
    if [ "$cflag" ]
    then
      printf "baseline\n"
    fi

    exit 0

     Desktop version

    profile_image

    슈우님의 댓글

    no_profile 슈우 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (39.♡.54.150) 작성일

    감사합니다.

    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (223.♡.17.250) 작성일

    TVHeadend 트랜스코딩 설정하기 Half Time - http://junhyeok.tistory.com/627

    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (223.♡.17.250) 작성일

    Tvheadend Muxes 등록시 Services 등록 불가 해결하기 | 나스모에
    https://nas.moe/archives/1467

    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (223.♡.17.250) 작성일

    21497

    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (223.♡.21.66) 작성일

    클리앙-나스당에 계신 이치로님이라는 분이 있죠. 그 분이 도커용 tvh 이미지를 작성해서 배포하셨어요. 그걸로 tvh를 설치하면 훨씬 더 간편합니다. 하드웨어 트랜스코딩까지 가능하게 되죠.

    문제는 설치 및 설정 자체는 굉장히 간소한데 그 이야기들을 다시 알아먹기가 처음엔 난해한 부분이 있있습니다.

    1) 설치시엔 다음을 참조하세요.
    https://github.com/wiserain/docker-tvheadend/blob/epgkr/assets/how-to-run-on-synology.md

    주의사항 있습니다.
    Advanced settings에서
    /docker/tvh-test/epg2xml 폴더를 만들고 Mount path에 /epg2xml를 넣어야 합니다.
    (설명서를 꼼꼼히 보셔야 합니다.)

    2) 내부 epg grabber 적용시엔 다음을 참조하세요.
    https://github.com/wiserain/docker-tvheadend/tree/epgkr

    ----------------------------------------------------------------
    도커 이미지의 설정방법과 제가 기존에 말씀드린 내부 epg grabber 설정과 다른 점은

    도커 이미지로 설정할 경우, epg2xml 안에 들어갈 파일을 자동으로 다운 받으며,
    내부 epg grabber 설정도 클릭 몇 번만 해주면 끝납니다. 매우 간편하죠.
    그러나, channerl.json 파일은 수정하셔야 합니다. (모든 enable을 0에서 1로 찾아바꾸기)

    확인해보시고 간편한 쪽으로 선택하시기 바랍니다.

    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (223.♡.21.66) 작성일

    docker-tvheadend
    다음의 특징을 가지는 docker-tvheadend 이미지

    linuxserver/tvheadend 기반: 다양한 docker용 앱 이미지를 제작/배포하고 있는 linuxserver.io의 소스를 기반으로 한다. 차이점은 tvheadend 빌드 옵션 중 --disable-*_static을 제거하여 좀 더 나은 transcoding이 가능하게 한다. 또한 본 이미지는 x86_64 기반이다.

    대한민국 IPTV를 위한 EPG grabber 탑재: 이 기능은 wonipapa/epg2xml과 내장 tv_grab_file을 이용하였다.

    실행 방법
    아래 세가지 방법 중 자신에게 맞는 하나를 선택하여 컨테이너를 생성/실행한다.

    docker 명령어 사용시:
    docker run -d \
        --name=<container name> \
        --network=host \
        -v <path to recordings>:/recordings \
        -v <path to config>:/config \
        -v <path to epg2xml>:/epg2xml \
        -e PUID=<UID for user> \
        -e PGID=<GID for user> \
        wiserain/tvheadend:stable
    docker-compose 사용시:
    version: '2'

    services:
      <service name>:
        container_name: <container name>
        image: wiserain/tvheadend:stable
        restart: always
        network_mode: "host"
        volumes:
          - <path to config>:/config
          - <path to recordings>:/recordings
          - <path to epg2xml>:/epg2xml
        environment:
          - PUID=<UID for user>
          - PGID=<GID for user>
    Synology DSM 사용시: 별도 문서 참조
    작성 시점이 오래 되어 상세 내용은 조금 다를 수 있으니 지금 보고 있는 문서의 내용을 우선으로 한다.

    EPG 사용법
    컨테이너를 실행 후 http://localhost:9981/를 통해 WEBUI로 접속한 다음, Configuration > Channel / EPG > EPG Grabber Modules로 이동하면 아래 이미지와 같이 3개의 IPTV 서비스를 위한 internal XMLTV grabber가 마련되어 있으니 Enable 시켜서 사용하면 된다.



    이미지 태그 기준 4.1-2493 버전부터 epg2xml의 옵션을 전달 받아 실행하는 모듈을 추가하였다. 왼쪽에서 Korea (epg2xml)을 선택하고 오른쪽 옵션 창에서 epg2xml 이후의 arguments를 주면 된다. 예외 처리가 되어 있지 않기 때문에 출력에 관련된 -o -s -d는 extra arguments로 입력하면 안된다.

    처음 EPG 설정 시 유의사항
    Socket으로 직접 밀어 넣는 external grabber와 달리 내부적으로 cron을 실행한다. 아래 그림과 같이 EPG Grabber 탭에 보면 기본 설정으로 매일 12시 24시 4분에 실행해서 epg를 가져온다. 하지만 버그가 있는지 기본 설정을 무시하고 끊임없이 실행되는 문제가 초반에 있다. 그러므로 설정을 바꿔서 저장해주고 Re-run Internal EPG Grabbers을 눌러서 실행해준다. 어떤 값으로든 변경 후에는 문제없이 정상적으로 동작하는 것을 확인하였다. Cron 설정 방법에 대해서는 링크를 참고바람.



    관련 설정들
    이미지 태그 네이밍 규칙
    latest: 최신 이미지 버전. 대부분의 유저에게 권장 됨. 새로운 기능을 체험할 수 있는 개발 버전으로 약간 불안정할 수 있다. 비유를 들자면 Firefox나 LineageOS의 Nightly 빌드, 아니면 iOS의 Public Beta와 유사하다.
    ver-build: 과거 이미지 버전으로 tvheadend 버전을 따른다. 예를 들어 4.1-2533.
    stable: 최신 tvheadend release 버전 참고
    vaapi: latest 빌드에서 vaapi 관련 옵션을 활성화 한 버전 (실험적)
    testing: docker 이미지 테스트 버전 (개발용)
    네트워크 모드
    docker는 멀티캐스트 패킷 라우팅이 안되기 때문에 tvheadend를 이용해 IPTV를 보기 위해서는 무조건 hosted network를 사용해야 한다. 일부 낮은 docker engine 버전(예를 들어 Synology DSM 5.2)에서는 지원하지 않으니 참고. hosted network란 포트 포워딩이나 매핑을 하지 않고 호스트의 네트워크에 그대로 붙인다는 의미이므로 tvheadend가 사용하는 포트를 바꾸고 싶다면 앱 실행 시 옵션을 주어서 변경해야 한다. docker에서는 다음과 같이 환경 변수를 추가해주면 된다. RUN_OPTS=--http_port <port number> --htsp_port <port number>

    환경변수
    docker-tvheadend의 동작을 제어하는 환경변수와 가능한 옵션을 설명한다. 참고로 환경변수는 컨테이너 생성 시점에 그 값이 고정 되므로 변경을 원한다면 컨테이너를 삭제/재생성 해야한다. 먼저 필수로 지정해야하는 환경변수=기본값는 다음과 같다.

    PUID, PGUI: 컨테이너 내부의 앱이 외부의 볼륨에 접근할 수 있도록 하는 권한에 대한 것이다. 여기를 참고하여 설정한다. 적절하게 설정하지 않으면, EPG 관련 스크립트가 동작하지 않거나 녹화가 안될 수 있다.
    TZ="Asia/Seoul": docker-tvheadend에 적용되는 timezone 설정이다. 이게 제대로 안되면 EPG에 시간차가 발생한다.
    EPG2XML_VER="latest": 이 값을 활용해서 epg2xml (latest release)을 다운로드 받는다. 만약 과거 버전에 머무르고 싶다면 값을 지정해 준다. 예를 들어 EPG2XML_VER=1.2.1 더이상 epg2xml 폴더의 내용이 변경되지 않기를 원한다면 값을 비워둔다. EPG2XML_VER=.
    추가로 사용 가능한 환경변수는 다음과 같다.

    UPDATE_CHANNEL: epg2xml의 채널 정보를 담고 있는 Channel.json 파일을 업데이트 한다. 더이상 업데이트 하지 않기를 원하면 false를 입력한다.
    RUN_OPTS=--http_port <port number> --htsp_port <port number>: tvheadend 바이너리에 직접 전달되는 실행옵션. 대표적으로 tvheadend의 동작 포트를 바꿀때 쓸 수 있다.
    TVH_URL=http://username:password@localhost:9981: tvhProxy는 tvheadend의 영상 스트림을 Plex의 DVR (녹화)에서 활용할 수 있도록 도와주는 프록시이다. tvheadend와 같이 내장했으므로 localhost가 맞고 그 외 username, password, port는 자신의 환경에 맞게 수정해서 사용한다. 참고로 이것을 활성화 하면 컨테이너 시작시 여러가지 의존성 설치를 위해 시간이 약간 걸린다.
    어쩌면 도움이 될지도 모르는 정보
    컨테이너를 시작할 때마다 /etc/cont-init.d/와 /etc/services.d/ 안의 스크립트를 이용해서 초기화를 진행하고 프로그램을 실행한다. 무슨 일이 일어났는지 궁금하거나 생각대로 되지 않으면 로그를 확인하자.
    epg2xml 동작 언어는 php이다. 성능은 python이 약간 좋지만 그 차이가 미미한 반면, docker로 deploy할 때 php가 꽤 유용한 기능을 제공한다.
    epg2xml.json은 경로에 파일이 없는 경우에만 다운로드하여 설치하고 경로에 있으면 원래 것을 보존한다. 따라서 같이 업데이트하고 싶으면 파일들을 지우고 컨테이너 삭제/생성/실행하면 된다. 그것도 싫으면 그냥 수동으로 받아서 복사/붙여넣기 하면 된다.
    예전에는 내부적으로 epg2xml를 실행할 때 다음의 arguments -i {KT/SK/LG} -d를 썻으나 이제는 -i {KT/SK/LG} -o /epg2xml/xmltv.xml로 실행한 다음 cat /epg2xml/xmltv.xml로 불러온다. 중간에 파일로 저장하는 과정이 추가된 것이다.
    EPG를 /epg2xml/xmltv.xml에 한 번 저장하는 이유는 이 경로를 웹서버로 노출시켜 다른 앱에서도 가져다 쓰기 쉽게 하기 위함이다. php 내장 기능을 이용해 /epg2xml 폴더의 내용이 http://<tvheadend ip>:9983/으로 서비스 되므로, tvheadend가 실행되면서 주기적으로 파일로 저장해 놓은 EPG 정보를 http://<<tvheadend ip>:9983/xmltv.xml로 접속하여 쓸 수 있다. 원래는 tvhProxy를 위해 짜낸 기능이지만 여러모로 유용하게 사용할 수 있을 것이다.
    자주 묻는 질문
    문제가 발생하면 읽어보세요.

    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (223.♡.21.66) 작성일

    configuration 들어가셔서 general 에서 유저 인터페이스 레벨을 전문가로 바꾸고 저장한다음에

    다시 저 설정에 메뉴 누르시면 채널/epg 메뉴에 epg 그래버 모듈 탭이 생겨요

    각 메뉴별 전문가 설정이 아니고, 유저 인터페이스에서 레벨을 전문가로 설정하셔야합니다~~

    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (223.♡.22.138) 작성일

    모든설정삭제후  재설치
    dsm 의 tvheadend  그룹 유저
    tvheadend 설치 내용제거
    MBC/MBC: AC3 @ #1236 Continuity counter error (total 4)
    h264  ,,,,,,동일에러 발생 하며
    시청 화면이  소리및영상  끊김  바벅임 발생으로
    tvheadend버전
    https://11q.kr/g5s/bbs/board.php?bo_table=s11&wr_id=3424
    와 같이  설치
    에러 없어 졌음
    vaapi 설치 하여  안정 됬음
    설치버전과 관련있나  확인예정

    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    []docker tvheadennd 설치시 참조
    >> 폴더를 3 개 만들고 docker 에서 마운트 합니다.
    /volume1/docker/wiserain-tvheadend/recording 는 /recording
    /volume1/docker/wiserain-tvheadend/epg2xml 는 /epg2xml
    /volume1/docker/wiserain-tvheadend/config 는 /config
    []환경변수 추가  PGID PUID
     >> PGID 와 PUID 를 0 으로 입력 합니다.

    profile_image

    non0099님의 댓글

    no_profile non0099 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (58.♡.87.28) 작성일

    감사합니다.

    profile_image

    아랄릴아라라님의 댓글

    no_profile 아랄릴아라라 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (122.♡.51.15) 작성일

    보고 잘 따라 했으나
    채널 생성에서 적용 눌르면 아이디 비밀번호 입력하라해서 입력하면
    그냥 확인만 되고 아무 변화가 없는데 혹시 이런 문제 껵으신분들 계신가요?

    profile_image

    shimss11q님의 댓글의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    초기 실행에 확인 하면 되지않나요

    profile_image

    sung0님의 댓글

    no_profile sung0 쪽지보내기 자기소개 아이디로 검색 전체게시물 아이피 (211.♡.68.27) 작성일

    가이드 잘 따라해서 덕분에 적용했습니다 감사합니다.
    근데 채널 중복이 꽤 있는건 m3u 파일에서 중복 채널을 삭제 해줘야 되나요?
    채널 번호도 매칭 시키려면 어떻게 해야 할까요?

    profile_image

    shimss11q님의 댓글의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    저는 ip관련 상이하여 그대로 사용 합니다
    채널 번호는 본문 추가 백앤드 채널번호 사용으로 합니다.

    profile_image

    shimss11q님의 댓글

    shimss11q 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 아이피 (192.♡.0.1) 작성일

    ( epg 관련 파일 tv_grab_kr_sk 서버에 저장 v필요시)

    web/epg2xml  폴더에 관련파일 카피후 /usr/bin 폴더에  tv_grab_wp 파일을 카피 합니다

    cp /volume1/web/epg2xml/tv_grab_wp /usr/bin  복사 합니다

    cd  /usr/bin

    chmod -R 755 tv_grab_wp  권한 변경 청색으로 변하고 설정 완료

    profile_image

    koojujup님의 댓글

    no_profile koojujup 쪽지보내기 자기소개 아이디로 검색 전체게시물 아이피 (1.♡.7.146) 작성일

    아주 간편하고 좋네요 감사합니다

    profile_image

    이카루가님의 댓글

    no_profile 이카루가 쪽지보내기 자기소개 아이디로 검색 전체게시물 아이피 (59.♡.99.57) 작성일

    생각 보다 힘드네요 ㅠㅠ

    profile_image

    초보군님의 댓글

    no_profile 초보군 쪽지보내기 자기소개 아이디로 검색 전체게시물 아이피 (110.♡.101.101) 작성일

    감사합니다.

    profile_image

    suroot님의 댓글

    no_profile suroot 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (206.♡.9.135) 작성일

    감사합니다

    profile_image

    미니맵님의 댓글

    no_profile 미니맵 쪽지보내기 자기소개 아이디로 검색 전체게시물 아이피 (203.♡.207.232) 작성일

    감사합니다.

    profile_image

    세종나스님의 댓글

    no_profile 세종나스 쪽지보내기 자기소개 아이디로 검색 전체게시물 아이피 (60.♡.26.125) 작성일

    감사합니다.

    profile_image

    진니님의 댓글

    no_profile 진니 쪽지보내기 자기소개 아이디로 검색 전체게시물 아이피 (118.♡.112.198) 작성일

    감사합니다

    profile_image

    eeee4님의 댓글

    no_profile eeee4 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (116.♡.130.219) 작성일

    감사합니다

    profile_image

    써브산님의 댓글

    no_profile 써브산 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (211.♡.81.152) 작성일

    감사합니다

    profile_image

    ㄴㅁㅇㄹㄷㄹㅁㅈㅂㄷ님의 댓글

    no_profile ㄴㅁㅇㄹㄷㄹㅁㅈㅂㄷ 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 아이피 (1.♡.204.51) 작성일

    감사합니다


    새창 작성 수정 목록 링크 Edit G카랜다 HDD HDD HDD 게시물 주소 복사


    • 일간 조회수
        • 게시물이 없습니다.
    • 주간 조회수
        • 게시물이 없습니다.
    • 월간 조회수
        • 게시물이 없습니다.


    Total 1,766 / 1 Page
    [ ● web page 공유폴더 구성하여 web site 만들기 ]

    ● web page 공유폴더 구성하여 web site 만들기구성 조건도메인 별도 구성1)기존사용 도메인 : 11q.kr2) 추가도메인 구입 :1…

    [ ● ha작업) 멀티 도메인 적용 https://ha.ddns 를 시놀로지에 기본 인증서 적용하고 duckdn… ]

    ● ha작업)멀티 도메인 적용 https://ha.ddns 를 시놀로지에 기본 인증서 적용하고 duckdns.org 및 npm 설치 필요 없네요…


    ♥간단_메모글♥


    최근글


    새댓글



    PHP 안에 HTML ☞ 홈페이지 화면갱신 시간은 ♨
    ▶ 2024-11-23 05:32:39

    오늘의 홈 현황


    • 현재 접속자♨ 551 명
    • 오늘 가입자※ 0 명
    • 어제 가입자※ 3 명
    • 주간 가입자※ 9 명
    • 오늘 방문자 1,865 명
    • 어제 방문자 3,461 명
    • 최대 방문자 13,042 명
    • 전체 방문자 4,804,482 명
    • 전체 게시물※ 8,855 개
    • 전체 댓글수※ 25,231 개
    • 전체 회원수 11,325 명

    QR코드


    ☞ QR코드 스캔은 kakao앱 자체 QR코드

    알림 0








    최신글↑