[Tvheadend 설치로 IPTV 예약 녹화하기] 6. 녹화가 끝나면 자동으로 인코딩 설정

EPG 를 이용하면 예약 녹화가 가능합니다. tvheadend 로 녹화하면 .ts 파일로 녹화가 되는데요. 이게 용량이 무지하게 큽니다.

1시간 가량에 6기가 바이트 정도인데요. 하나 두개씩만 녹화해두고 보고 지우고 하시면 무관하지만 시리즈별로 보관하거나 하면...

따라서 녹화 후에 용량을 줄여 인코딩을 자동으로 수행하게끔 하는게 필요합니다.
 

쉘 스크립트를 먼저 다운 받으세요. 안의 내용을 일부 수정해야 합니다.
 

#!/bin/sh # Variables #720p mp4 변환 TSVIDEO=$1 b=$2 TRANSCODEPATH="/volume1/video/IPTV/" # tvheadend에서 지정한 파일 저장 경로 환경에 맞게 수정할 것. title=$(echo $b | sed s'/\([0-9]\{4,\}\).*\([0-9]\{2,\}\).*\([0-9]\{2,\}\)/\1\2\3/' | sed s'/[\-]/ /g' | sed 's/ \{2,\}/ /g' | sed s'/ \[.*\]//g' | sed s'/...$//') target_dir_name=$(echo $title | sed s'/.[0-9].*$//') MKVVIDEO=$TRANSCODEPATH$title".H264.720P.mp4" # 출력할 파일에 새로 추가할 내용 및 확장자. ".H264.1080P.mkv" 부분은 입맛에 맞게 수정할 수 있슴. /bin/sync # flush diskbuffer # Transcode to mkv echo "***** 시작시간 $(/bin/date +%Y.%m.%d' '%H:%M:%S) *****" >$TRANSCODEPATH$title.log echo "****************************************************" >>$TRANSCODEPATH$title.log echo "********** $MKVVIDEO 로 인코딩을 시작합니다.*************" >>$TRANSCODEPATH$title.log echo "***************************************************" >>$TRANSCODEPATH$title.log echo "*************** INPUT = $TSVIDEO ******************" >>$TRANSCODEPATH$title.log echo "*************** OUTPUT = $MKVVIDEO ****************" >>$TRANSCODEPATH$title.log echo "***************************************************" >>$TRANSCODEPATH$title.log echo "****** Created by $(/usr/bin/whoami) **************" >>$TRANSCODEPATH$title.log echo "***************************************************" >>$TRANSCODEPATH$title.log ffmpeg -i "$TSVIDEO" -vcodec libx264 -acodec aac -ab 192k -ar 48000 -ac 2 -b:a 192k -level 4.1 -s hd720 "$MKVVIDEO" </dev/null >>$TRANSCODEPATH$title.log 2>&1 echo "***************************************************" >>$TRANSCODEPATH$title.log echo "** 종료시간 $(/bin/date +%Y.%m.%d' '%H:%M:%S) **" >>$TRANSCODEPATH$title.log

TRANSCODEPATH 를 본인의 폴더(녹화파일이 저장될)에 맞게 수정하시기 바랍니다. 저의 경우는 용량이 작은걸 더 선호하기 때문에 720P 정도로 인코딩 하면 괜찮다 싶어서 저렇게 했지만, 화질이 더 좋은걸 원하시는 부분은 'ffmpeg' 부분의 옵션을 수정하시면 됩니다. 옵션 수정에 관해서는 구글 검색 등을 이용해주세요.

저장하신 후에 임의의 폴더 (저의 경우는 /volume1/video/IPTV/data) 에 FileStation 이나 FTP 등을 이용하여 업로드 합니다.

다음에 ffmpeg 가 설치되어있는지 확인할 필요가 있습니다.
SSH 에서 ffmpeg 라고 입력해보세요.

> ffmpeg ... (있다면 ffmpeg 의 실행 옵션에 관한 여러 말들이 나옵니다)

설치되어있지 않다면 구글 검색등을 이용하여 설치해주세요
https://www.google.co.kr/search?q=시놀로지+ffmpeg+설치

다음에 tvheadend 로 접속하셔서

'설정' - '녹화' - '디지털 비디오 녹화 프로필' - '(Default profile)' 을 선택하시구요.
오른쪽 위에 '보기 수준' 을 '전문가' 로 변경하셔야 합니다.

'후처리 명령:' 칸에 다음과 같이 입력합니다. (파일 경로는 위에서 저장했던 폴더 위치를 참고해서 수정해야됨)

#!/bin/sh # Variables #720p mp4 변환 TSVIDEO=$1 b=$2 TRANSCODEPATH="/volume1/video/IPTV/" # tvheadend에서 지정한 파일 저장 경로 환경에 맞게 수정할 것. title=$(echo $b | sed s'/\([0-9]\{4,\}\).*\([0-9]\{2,\}\).*\([0-9]\{2,\}\)/\1\2\3/' | sed s'/[\-]/ /g' | sed 's/ \{2,\}/ /g' | sed s'/ \[.*\]//g' | sed s'/...$//') target_dir_name=$(echo $title | sed s'/.[0-9].*$//') MKVVIDEO=$TRANSCODEPATH$title".H264.720P.mp4" # 출력할 파일에 새로 추가할 내용 및 확장자. ".H264.1080P.mkv" 부분은 입맛에 맞게 수정할 수 있슴. /bin/sync # flush diskbuffer # Transcode to mkv echo "***** 시작시간 $(/bin/date +%Y.%m.%d' '%H:%M:%S) *****" >$TRANSCODEPATH$title.log echo "****************************************************" >>$TRANSCODEPATH$title.log echo "********** $MKVVIDEO 로 인코딩을 시작합니다.*************" >>$TRANSCODEPATH$title.log echo "***************************************************" >>$TRANSCODEPATH$title.log echo "*************** INPUT = $TSVIDEO ******************" >>$TRANSCODEPATH$title.log echo "*************** OUTPUT = $MKVVIDEO ****************" >>$TRANSCODEPATH$title.log echo "***************************************************" >>$TRANSCODEPATH$title.log echo "****** Created by $(/usr/bin/whoami) **************" >>$TRANSCODEPATH$title.log echo "***************************************************" >>$TRANSCODEPATH$title.log ffmpeg -i "$TSVIDEO" -vcodec libx264 -acodec aac -ab 192k -ar 48000 -ac 2 -b:a 192k -level 4.1 -s hd720 "$MKVVIDEO" </dev/null >>$TRANSCODEPATH$title.log 2>&1 echo "***************************************************" >>$TRANSCODEPATH$title.log echo "** 종료시간 $(/bin/date +%Y.%m.%d' '%H:%M:%S) **" >>$TRANSCODEPATH$title.log

밑에 '녹화할 시스템 경로입니다' 부분 역시 녹화파일이 저장될 위치를 지정해주세요.

'파일 이름 캐릭터셋:' 부분을 꼭 'UTF-8' 로 변경해주시기 바랍니다.

좀 더 아래쪽에 보면 '윈도우 호환 파일 이름 사용:' 이 있는데 그 부분을 체크 해주세요.

모두 완료 하신 후에 왼쪽 위에 '저장' 버튼을 누르시면 앞으로 녹화되는 파일은 녹화가 종료된 후에 자동으로 인코딩을 수행하게 됩니다.
 

녹화가 종료된 후에 자동으로 인코딩이 진행되며, '냉장고를 부탁해 (151회).H264,720P.mp4' 라는 이름으로 더 적은 용량의 파일로 인코딩 된 걸 확인할 수 있습니다.

이상으로 tvheadend 를 이용한 예약 녹화 포스팅을 마치도록 하겠습니다. 아무쪼록 도움이 되시길 바랍니다. 

이상 원주 센트럴부부치과의원 이었습니다. 감사합니다.


0 Comments
제목
Facebook Twitter GooglePlus KakaoStory NaverBand