반응형

[QNAP] TS-251 TVHeadend + HW Transcoding

TVHeadend를 사용하면서 녹화된 ts파일은 용량이 어마 어마하게 크기 때문에, Transcoding을 하는것이 용량 관리 측면에서 좋다.

VAAPI와 같은 것들을 이용하여 많은 분들이 HW Transcoding을 사용하시는 분들이 많습니다.

저는 docker보다 네이티브로 설치하는 것을 선호해서, 

이 포스팅에서는 QNAP에서 제공하는 tool을 이용하여 스크립팅하여 사용하는 법을 정리 해 보았다.

다음과 같이 autoencoding.sh를 생성해 준다. 기본적인 구조는 다음 포스팅에 있는 스크립트를 사용하였다

http://3jini.tistory.com/104

#!/bin/sh
# Variables
TSVIDEO=$1    
b=$2      
t=$3
title=$(echo $b | sed s'/ ([0-9,]\+회)//g' | sed s'/\.ts//g' )
target_dir=$(echo $t | sed s'/ ([0-9]\+회)//g')
base_dir="/share/CACHEDEV1_DATA/TV_record/"
log_path="$base_dir/record.log"
TRANSCODEPATH="$base_dir$target_dir/"                    # tvheadend에서 지정한 파일 저장 경로 환경에 맞게 수정할 것.
if [ ! -e "$TRANSCODEPATH" ]; then
    mkdir -p "$TRANSCODEPATH"
fi
MP4VIDEO=$TRANSCODEPATH$title".h264.1080p.mp4"    # 출력할 파일에 새로 추가할 내용 및 확장자. ".H264.1080P.mkv" 부분은 입맛에 맞게 수정할 수 있슴.
/bin/sync    # flush diskbuffer
echo "*************** INPUT = $TSVIDEO ******************" >>$log_path
echo "*************** OUTPUT = $MP4VIDEO ****************" >>$log_path
/mnt/ext/opt/medialibrary/bin/myvatranscode -vb 12M -s 1080p -i "$TSVIDEO" -o "$MP4VIDEO" -acodec copy 
echo "** 종료시간 $(/bin/date +%Y.%m.%d' '%H:%M:%S) **" >>$log_path
echo "** 원본 파일 제거 .... ****************************" >>$log_path
rm -rf "$TSVIDEO" >> $log_path

해당 스크립트에서 가장 중점이 되는 부분은 다음 라인이다.

/mnt/ext/opt/medialibrary/bin/myvatranscode -vb 12M -s 1080p -i "$TSVIDEO" -o "$MP4VIDEO" -acodec copy 

/mnt/ext/opt/medialibrary에는 QNAP에서 사용하는 미디어 라이브러리들이 들어있다. 그 중 myvtranscode는 ffmpeg base로 되어있고 hw_transcoding을 간편하게 할 수 있도록 되어있다.

-help를 통해 도움말을 확인하여 옵션조정이 가능하다

현재 나의 Setting으로는 비디오 비트레이트 12M에 1080p Size의 Transcodding을 진행하고 있다

위의 스크립트를 내부 폴더에 위치 시킨 후 TVHeadend Recoding Profile Post Script상에 다음과 같이 추가해 주면 된다.



반응형

'Software > QNAP TS-251' 카테고리의 다른 글

[QNAP] TS-251 Showdown 설치  (0) 2019.05.18
[QNAP] TS-251 Flexget Setup  (0) 2019.04.25
[QNAP] TS-251 초기 Setting 정리  (2) 2018.12.18
[QNAP] TS-251 TVHeadend 설치 + Android KODI  (1) 2017.01.17
[QNAP] TS-251 - Enpass 설정법  (4) 2017.01.15
반응형

 

QNAP TS-251D-2G (하드미포함)

SSD 구매 기념으로 QNAP System 초기화 하여 새로 Set-up 하도록했다.

SSD 장점을 최대한 누리기 위해 Cache Set-up 하여 성능을 최대한 발위하도록 해보려 한다

 

      1. QNAP 초기화

QNAP off 모든 HDD 제거 SSD 삽입하여 부팅하여 준다.

초기화 작업이전에 필요한 Data 모두 백업해둔다!

 

QNAP 초기화 방법은 여러가지가 있다고 하는데 QFinder 통한 과정을 진행해본다.

https://www.qnap.com/ko-kr/utilities/essentials

 

 

위의 링크에서 새로운 SSD 삽입하고 Qfinder NAS 찾게되면 자동으로  초기화 과정을 진행할 수있다.

 

 

 

 

 

      1. Storage/Volume설정

 

본인의 스토리지 구성에 맞는 Set-up을 정하여 결정한 대로 설정한다

1TB SSD + 4TB HDD 구성인 2베이에서 Raid는 과감히 포기하고 Raid0인 QTier 설정을 Set-up하였다.

 

QTier는 사용빈도수 분석을 통하여 데이터 저장위치를 결정해 준다고 하는데....

1TB를 캐쉬로 통짜로 쓰기는 아깝고!! 스토리지와 캐쉬 역할을 동시에 수행할 수있다고 하여 결정하였다.

 

자세한것은 다음 링크 참고

https://www.qnap.com/ko-kr/how-to/tutorial/article/qnap-qtier-사용하여-자동-계층화를-수행하고-스토리지-성능을-최적화하려면-어떻게-해야-합니까/

 

 

      1. QNAP Club Repo 추가

 

QNAP App store에서 기본으로 제공하는 앱들도 있지만 QNAP Club에서 배포하는 앱들을 통해 컴파일 없이 좀더 다양한 앱을 사용하고 누릴수 있다

 

REPO는 다음 링크를 확인하여 추가하면 된다

https://www.qnapclub.eu/en/howto/1

 

 

      1. 보안설정

다음과 같이 보안 탭에서 설정한다. 생각보다 QNAP을 돌리다보면 이상한 사람들이 접근을 많이 시도한다!

 

 

 

      1. MyQNAP Cloud Setting

 

SSL인증서및 myqcapcloud.com dns 신청을 위해서는 myQNAPCloud앱을 열고 로그인 을 해주어야한다.

 

귀찮으니까  SSL 인증서는  Let's Encrypt를 사용한다...

 

      1. 계정 공유폴더 설정

계정  및 사용자 설정과 공유폴더를 설정한다

원래 관련 세팅이 백업 및 복구가 되지만 새로운 마음으로 정리하기 위해 이번에는 새로 Set-up하였다.

 

      1. 어플리케이션 설치

QTransmission

Plex Media Server

Qgit

QPython2, 3

 

      1. 어플리케이션 설정

QTransmission

User/Password Setting

 

ssh로 접근후 /share/CACHE.../.qpkg/QTransmission/etc/setting.json 파일 수정

rpc-username: id

rpc-password: pw

 

이후

./QTrasnmission restart

 

 

 

Plex Media Server

외부에서 Plex Media Server세팅 하는 방법 다음 포스팅 참고

http://3jini.tistory.com/91

https://support.plex.tv/articles/200288586-installation/

 

 

      1. 기타 어플리케이션 설치

 

TVHeadend

Xmltv

 

TVHeadend

 

같은 블로그 내의 다음 포스팅을 참고하시기 바랍니다

http://proactive.tistory.com/70?category=599427

 

Epg2xml활용 하여 EPG xml 생성

https://github.com/wonipapa/epg2xml

 

 

XMLTV

https://forum.qnap.com/viewtopic.php?f=276&t=53667 다음 링크에서 다운로드 받아 설치 진행

[/share/my/TVHeadend] # unzip xmltv_0.7.8_x86_64.zip  

Archive:  xmltv_0.7.8_x86_64.zip

  inflating: xmltv_0.7.8_x86_64.qpkg 

[/share/my/TVHeadend] # ls

epg2xml/  tv_grab_file        TVHeadend_0.9.3.6_x86_64.qpkg  tvhProxy/  xmltv_0.7.8_x86_64.qpkg  xmltv_0.7.8_x86_64.zip

[/share/my/TVHeadend] # /bin/sh xmltv_0.7.8_x86_64.qpkg

Install QNAP package on TS-NAS...

./

./qpkg.cfg

./built_info

./package_routines

./qinstall.sh

719+1 records in

719+1 records out

17023039 bytes (16.2MB) copied, 0.144149 seconds, 112.6MB/s

16624+0 records in

16624+0 records out

17022976 bytes (16.2MB) copied, 0.145328 seconds, 111.7MB/s

Firmware check is fine.

Link service start/stop script: xmltv.sh

Set QPKG information in /etc/config/qpkg.conf

[App Center] xmltv 0.7.8 has been installed in /share/CACHEDEV1_DATA/.qpkg/xmltv successfully.

[App Center] xmltv enabled.

[/share/my/TVHeadend] # 

 

EPG2XML XMLTV 활용 하여 EPG정보 전달

tv_grap_file
 

#!/bin/sh

if [ "x$1" = "x" ]; then

     cd /share/my/TVHeadend/epg2xml

         /opt/QPython2/bin/python epg2xml.py -o xmltv.xml

         chmod 755 xmltv.xml

         cat xmltv.xml

    exit 0

fi

case "$1" in

    --description)

    echo "My custom grabber"

    ;;

    --version)

    echo "1.0"

    ;;

    --capabilities)

    echo "baseline"

    ;;

esac

 

위의 스크립트를 /usr/bin 복사해준다

 

그이후 TVHeadend 내에 EPG Grabber Module에서 Enable해주면 된다.

 

 

 

반응형

+ Recent posts