시놀로지에서 PLEX를 도커로 올려서 사용 중이다. 영상 용량이 꽤 되고 친구들도 보는 경우가 있어서 블랙프라이데이 때 라이프타임을 10만원 정도 주고 샀다. 그러나 삼성TV 내장앱, 애플TV 내장앱, 컴퓨터, 핸드폰, 패드 등등 영상이 멈추고 버벅거리는 경우가 너무 흔했다.
인터넷 속도가 100Mbps여도 4K 재생에는 무리가 없기 때문에 다른 원인이 있나 찾아봤고 99.9% smi 형식 자막때문에 트랜스코딩 이슈가 발생했다는 것을 확인했다.
PLEX는 smi 자막을 제대로 인식하지만 그 과정에서 트랜스코딩이 걸려 버벅이게 되고, SRT or ASS 자막을 써야 해결되는 것이다.
이미 수많은 자막이 SMI로 저장되어있는데 일일히 바꿀수도 없는 노릇이고 윈도우나 맥 os 환경보다는 시놀로지 자체적인 환경에서 한번 세팅 후 자동으로, 주기적으로 변환되도록 해결하고 싶었다.
그 해결책이 바로 SMI2SRT docker 이다.
천천히 따라하다보면 틀릴게 없을 정도로 엄청나게 자세한 가이드라인이나, 몇가지 문제점을 겪고 시간이 걸려 해결해서 블로그에 남긴다.
해당 링크 가이드라인을 따라가다보면 아래와 같은 문구가 있다.

(/var/services는 homes의 기본적으로 약속된 상위경로이다.)
-> 이 명령어 부분은 작업 스케줄러 명령어를 작성하는 부분인데, 가이드에서는 작업스케쥴러 스크립트를 위 사진과 같이 작성하라고 되어있었으나, 이것은 도커 볼륨 맵핑으로 homes가 가능하던 이전 얘기이고, 요즘은 homes 폴더에 볼륨 맵핑하는 것이 불가능하며 보통 /volume1/docker/본인이 원하는 폴더 이런 경로를 따라간다.
따라서 필자는 저 부분을
/bin/bash /volume1/docker/smi2srt/exec.sh
라고 입력했다. 저 경로는 처음에 도커 만들 때 지정한 볼륨 경로를 참고한 것이다.
도커 볼륨 경로는 아래 사진과 같이 지정했다.

스냅샷 설정을 하는 사람들은 볼륨 설정 중 주의할 점이 SRT 작업 폴더를 공유폴더 통째로 지정해버리면 공유폴더 하위에 있는 스냅샷 폴더를 자동으로 인식해버리지만, 쓰기 권한이 없어 작업이 되질 않아 에러가 걸리며 무한으로 명령이 지속된다.
그럴 경우 반드시 컨테이너를 종료하고, exec.sh 파일 내 볼륨 맵핑 시 공유폴더가 아닌, 그 하위폴더로 지정하면 해결된다.
작업 결과 SMI 2000개 파일 중 약 50개가 오류가 나는데 SMI2SRT 도커 문제가 아니라 자막 문제였다. 시간도 몇분 안걸렸던 것으로 기억한다.
결론적으로 도커의 성능은 매우 훌륭하고 정확하며 빨랐고 매주 월요일 오후 6시로 자동 스케줄을 걸어 놓은 상태로 원래 자주 발생하던 트랜스코딩 현상은 아예 없어졌다.
저 도커는 이미지에서 빌드하는 형식으로만 작동이 되고 있어서 docker compose 형식으로 제공이 가능한지 제작자에게 이메일로 문의했었으나 아직 답은 없다..