저처럼 이러저러한 문제로 인해서 도커용 TVH사용이 어려운분들을 위해 글남김니다 ^^
저는 리눅스에 문외한이라 전문적인 설명은 어려우니 제글은 참조만 부탁드립니다.
전에 214PLAY를 쓰다 218+로 넘어온지라 PLAY모델도 smd코덱으로도 트랜스코딩이 가능할꺼라 판단됩니다~
(행복한지니군님글 참조)
적용과정 :
1. 도커용 TVHEADEND VAAPI 사용하여 트랜스코딩 성공
- TVHEADEND 미사용시에도 NAS가 슬립모드가 작동하지 않고, 지속적으로 디스크 읽는소리가 발생 (밤에 신경쓰임)
2. 행복한지니군님 및 모근원님의 글을 참조하여 PIPE를 사용하여 FFMPEG를 사용한 VAAPI 트랜스코딩 성공
-TVHEADEND 및 FFMPEG 버그일수도 있으나, TVHEADEND트랜스코딩 후 FFMPEG가 NAS 메모리에 상주되어 메모리 사용량
누적현상 발생
-KILL커맨드로 상주되어있는 FFMPEG 트랜스코딩 명령 삭제하거나, TVHEADEND를 실행중지했다가 다시 실행함.
3. 모카페에서 TVHEADEND 스트림 프로필 중 MPEG-TS Spawn을 사용하여 command에 ffmpeg 명령으로 gpu가속 트랜스코딩
게시글 확인
-동일한방법으로 ffmpeg vaapi 트랜스코딩 명령을 사용하여 트랜스코딩 성공
-NAS 슬립모드 작동안함 또는 ffmpeg 램상주 문제 없음
사용환경
NAS : 218+
DMS : 6.2.1-23824 Update 1
TVHEADEND : 4.4.20180726
설정방법 :
1. PUTTY ssh관리자권한으로 접속하여 var/packages/VideoStation/target/bin/ffmpeg가 VAAPI 실행가능한지 확인
var/packages/VideoStation/target/bin/ffmpeg -encoders
2. WINSCP로 TVHEADEND 소유권자 확인
3.tvheadend에 계정을 하나 생성합니다.
username = *
Allowed networks = 10.9.8.0/24
4.패스워드도 생성합니다.
username = *
password = 없음
5./etc/sudoers 파일수정
# Allow root to execute any command
root ALL=(ALL) ALL 밑에 부분에 추가항목
tvheadend-testing ALL=NOPASSWD:/var/packages/VideoStation/target/bin/ffmpeg
→WINSCP에서 소유권자 확인하여 앞에 이름을 바꿔주셔야 합니다.
4.TVHEADEND 관리자에 접속하여 스트림 프로필 작성
설정→스트림→스트림프로필→추가→MPEG-TS Spawn/built-in 선택
command line에 명령입력
sudo /var/packages/VideoStation/target/bin/ffmpeg -loglevel fatal -vaapi_device /dev/dri/renderD128 -hwaccel vaapi -hwaccel_output_format vaapi -noautorotate -i pipe:0 -vf 'format=nv12|vaapi,hwupload,scale_vaapi=w=640:h=360' -c:v:0 h264_vaapi -c:v:0 h264_vaapi -b:v 1500k -c:a:0 aac -ab 64k -ar 44100 -ac 2 -strict -2 -tune zerolatency -f mpegts -
5.스트림프로필 적용하여 tvheadend 실행
저는 해당 설정 후 프로필 선택시 해당 프로필 이용 자체가 안되네요.
command line에 아무것도 없는 상태에도 프로필 이용이 불가능 한데 권한 부분 문제는 아닌것 같고 어렵네요.
그리고 저는 정품 DS918+ 사용자 인데 var/packages/VideoStation/target/bin/ffmpeg -encoders 명령어를 입력했을때 해당 encoder가 보이질 않네요. 비디오스테이션에서 영상 품질 변환시 htop에서 vaapi로 재생은 잘 되구요.
시놀에 따라 조금 다른게 있을까요?
설치해보시고 확인해보시기 바랍니다.
vaapi 인코더 포함되어있는 ffmpeg는 제가 확인하기로 var/packages/VideoStation/target/bin/ffmpeg만
있었습니다.
다른곳에 있는 ffmpeg는 해당 인코더가 없었습니다.~
일간 putty로 관리자권한 접속후 ts파일을 vaapi로 인코딩작업이 되는지 확인하신후
tvh설정해보시면 좋을것 같습니다
그런데 5번 항목에 소유권자 이름을 수정해야 한다는게
tvheadend-testing ALL=NOPASSWD:/var/packages/VideoStation/target/bin/ffmpeg
→WINSCP에서 소유권자 확인하여 앞에 이름을 바꿔주셔야 합니다.
소유권자 ALL=NOPASSWD:/var/packages/VideoStation/target/bin/ffmpeg
이렇게 바꾸는거 말씀하시는건가요?