XX아~ 열심히 하지마~. 잘하란 말야~

Synology NAS Video Station 무한 로딩 해결 본문

Blog/IT

Synology NAS Video Station 무한 로딩 해결

IamwhatIam 2021. 6. 22. 11:31

Synology NAS DS118J를 쓰다가 DS920+를 추가로 영입해서 사용하고 있다.

처음 시작은 사진 BackUp에 용량 및 속도의 갈증이 생겨서 Upgrade를 했는데 DS118J에서 안되던 것들이

Spec Upgrade를 하고나니 할 수 있는 것들이 더욱 많아 졌다.

욕심이 생겨서 설정 안해 놓았던 Setting들을 하나씩 하면서 최대 성능을 써먹기 위해서 NAS 학대를 하는 중이다.

그러다가 문제가 생긴 것이 Video Station에서 무한 로딩이 되는 부분이 생겼다.

문제의 코덱은 바로... DTS (Originally digital Theather Systems)가 무한로딩을 하는 경우를 발생시켰다.

Googling에 의하면 Synology NAS의 DSVideo(Video Station)는 라이센스 문제로 인해

DTS,  EAC3, TrueHD 코덱을 지원하지 않는다고 한다.

뭐... 세상은 넓고 방법은 많다고 했던가...

수정이 불가능한 Hardware Player도 아니고... Unix기반의 NAS이기 때문에 추가 패키지 등을 설치하여

해결하는 방법들이 나오기 마련이다.

그 중에 한가지가 FFMPEG-Wrapper Script를 이용해서 DTS, EAC3, TrueHD 코덱을 사용하는 동영상을

Video Station에서 재생할 수 있는 방법이다.

Synology NAS의 [패키지 센터]에서 설치해 주면 된다.

기본적으로느 Synology에서 제공하는 패키지가 아니기 때문에 [패키지 센터]-[설정]-[패키지 소스]-[추가]에 의해서

패키지 소스를 추가해줘야 한다.

위치 : http://packages.synocommunity.com

패키지 소스를 추가하고 싶지 않다면 수동하는 하는 방법도 있다.

구지비~ 수동으로 하겠다면 아래의 링크를 참고하기 바란다.

https://synocommunity.com/package/ffmpeg

https://github.com/SynoCommunity/spksrc/wiki/Architecture-per-Synology-model

 

일단 ffmepg package까지 설치했는데도 안된다면... 추가적인 작업이 필요하다.

나의 경우엔 DS920+의 CPU가 x86, x64에 해당하므로 해당 Processor에 대한 설명만 하도록 하겠다.

일단 Video Station의 실행을 중지시킨다.

그 후 NAS에 Console 접속을 한다. (SSH 접속)

각종 백업, 다운로드, 권한, 모드 변경이 필요하기 때문에 관리자 권한이 필요하다.

NAS에 SSH 접속 후 root 권한을 획득 한다.

sudo -i

 

Video Station에 의해서 설치된 코덱을 백업하고 ffmpeg-wrapper Script를 다운받아서 ffmpeg를 대체한다.

ffmpeg-wrapper Script의 권한 및 모드도 변경해준다.

DTS, EAC3, TrueHD 인증을 위한 libsynovte.so도 패치해준다.

mv -n /var/packages/VideoStation/target/bin/ffmpeg /var/packages/VideoStation/target/bin/ffmpeg.orig

wget -O - https://gist.githubusercontent.com/BenjaminPoncet/bbef9edc1d0800528813e75c1669e57e/raw/ffmpeg-wrapper > /var/packages/VideoStation/target/bin/ffmpeg

chown root:VideoStation /var/packages/VideoStation/target/bin/ffmpeg
chmod 750 /var/packages/VideoStation/target/bin/ffmpeg
chmod u+s /var/packages/VideoStation/target/bin/ffmpeg

cp -n /var/packages/VideoStation/target/lib/libsynovte.so /var/packages/VideoStation/target/lib/libsynovte.so.orig
chown VideoStation:VideoStation /var/packages/VideoStation/target/lib/libsynovte.so.orig

sed -i -e 's/eac3/3cae/' -e 's/dts/std/' -e 's/truehd/dheurt/' /var/packages/VideoStation/target/lib/libsynovte.so

 

여기까지 진행했는데도 안되는 경우가 발생했다.

또다시 Googling을 해보니... "Synology Moments" 와 "Advanced Media Extensions"의 영향이라고 한다.

그렇다고 NAS 최초 목적이었던 Moments를 삭제할 수 없는 노릇이다.

아마도 영향을 주는 이유가 CodecPack에 설치된 ffmpeg Codec을 내부적으로 공유해서 발생하는 것으로 추측이 된다.

VideoStation ffmpeg를 페이크로 돌려줬으니 CodecPack의 ffmpeg도 같이 처리하는 식으로 해결을 해보자.

 

mv /var/packages/CodecPack/target/bin/ffmpeg33 /var/packages/CodecPack/target/bin/ffmpeg33.orig
cp /var/packages/VideoStation/target/bin/ffmpeg /var/packages/CodecPack/target/bin/ffmpeg33

일단 백업해주고 VideoStation에 있던 ffmpeg를 CodecPack으로 copy해서 대체한다.

 

이제 아까 실행을 중지했던 Video Station을 실행해주면 DTS Codec 파일이 재생되는 것을 확인할 수 있다.

 

만약 Video Station 자체가 Update된다면 FFmpeg Wrapper 자체를 재설치 해줘야 한다.

얻어 쓰는 입장이니 그정도 불편함은 감수하자. ^^

 

FFmpeg Wrapper Script가 Update되면 아래의 명령어를 통해서 Update 해주면 된다.

wget -O - https://gist.githubusercontent.com/BenjaminPoncet/bbef9edc1d0800528813e75c1669e57e/raw/ffmpeg-wrapper > /var/packages/VideoStation/target/bin/ffmpeg

 

설치한 코덱의 삭제가 필요하다면 백업해 놓은 파일을 원복하면 된다.

mv -f /var/packages/VideoStation/target/bin/ffmpeg.orig /var/packages/VideoStation/target/bin/ffmpeg
mv -f /var/packages/VideoStation/target/lib/libsynovte.so.orig /var/packages/VideoStation/target/lib/libsynovte

mv -f /var/packages/CodecPack/target/bin/ffmpeg33.orig /var/packages/CodecPack/target/bin/ffmpeg33