Lifove Story

dlna + 크롬캐스트 + 자막 + Qnap NAS + No Transcoding 본문

Lifove Home Theater

dlna + 크롬캐스트 + 자막 + Qnap NAS + No Transcoding

Lifove 2017.01.25 04:07

크롬캐스트로 자막이 나오는 영화보기...구글 플레이 스토어 무비나 티빙 넷플릭스 등의 서비스를 이용하면  별 문제가 없다. 대게 동영상 자체에 자막이 함께 녹화 되어 있기 때문이다. 이럴 경우, 자막을 끄는 게 불가능 하겠지만, 자막이 필요한 영화인데 굳이 자막을 끌 일은 별로 없을테니 큰 문제는 아닐게다.


하지만, 직접 소장하고 있는 동영상 파일을 크롬캐스트를 통해 스트리밍으로 재생하려면, dlna 미디어 서버가 설치되는 NAS와 같은 장비 환경에 따라 아주 쉽거나 아주 어려울 수 있다.  크롬캐스트가 재생할 수 있는 동영상 포맷(주로 H.264, 음성은 AAC)과 자막 포맷(srt 확장포맷인 WebVTT나 TTML)은 정해져 있다 (지원 포맷 전체 리스트: https://goo.gl/UIGzG5). 그래서 크롬캐스트로 자막이 나오는 영화를 볼 때 제약사항이 많다. 이런 호환성 문제를 상용 미디어 서버들이 Transcoding(트렌스코딩)이라는 기능을 통해 한 번에 해결한다. 쉽게 말해, 원본 영화를 스트리밍의 적합한 형태로 실시간으로 변환하고 이 때 자막도 입혀 동영상을 스트리밍 하는 것이다. 하지만 소규모의 NAS를 미디어 서버로 사용하는 사람들에게는 트렌스코딩 기능을 사용할 만한 CPU를 가지고 있지 않아 불가능하다.


저사양의 NAS에서 크롬캐스트로 스트리밍 할 때 자막 나오게 하는 해결책은 다음과 같다.


(1) NAS에 저장 할 영화 파일이 크롬캐스트가 지원하는 동영상 포맷이 아닐 경우

H.264이용해서 mp4파일로 무조건 다시 인코딩한다. 인코딩시 자막을 영화에 영구적으로 나오게 넣는다. 번거롭긴 하겠지만, 크롬캐스트 지원 동영상이 아니라면 당연히 지원 포맷으로 다시 인코딩 해야 하기 때문에 고민하지 말고 새로 인코딩을 하라. 정신 건강에 이롭다. 단 자막을 영구적으로 동영상에 넣고 싶은 생각이 없으면 동영상만 인코딩 하고, (2)의 방법까지 가면 된다. 다양한 인코딩 프로그램이 있는데 맥에서는 HandBrake(https://goo.gl/0d9rme)라는 프로그램을 많이 쓴다. 물론 맥, 윈도우, 리눅스에서도 모두 사용가능한 프로그램이다. Toggle Preset 버튼을 누르면, 크롬캐스트에 적합한 인코딩을 해주는 "Chromecast 1080P30 Surround Preset을 이용하면, 이런 저런 고민없이 편리하게 인코딩 할 수 있다.


(2) 크롬캐스트 지원하는 동영상 포맷이지만 자막이 UTF-8 형식의 smi나 srt가 아닌 자막 파일일 경우

먼저 모든 smi파일을 UTF-8포맷으로 무조건 변경해 준다. (UTF-8인코딩이 아닌 smi를 그대로 쓸 수 있는 방법을 굳이 찾으려 하지 마라. 정신 건강에 해롭다. UTF-8이 아니더라도 미디어 서버에서 자막 인코딩 설정을 해줄 수 있다. 하지만 UTF-8 srt로 변환해두면 어떤 장비에서든 기본으로 잘 돌아가니 추후를 생각해 미리 대비하는 것이 좋다.) 나는 맥에서 삼바로 NAS 디렉토리를 마운트 후 쉘스크립트로 한 번에 변경했다 (여기 참조: http://susemi99.tistory.com/1471). Mac용 smi2srt는 버그가 있는지 어떤 경우에는 변경이 잘 안되는 경우가 있다. 그럴 땐 해당 폴더로 가서 직접 변경해주면 웬만하면 잘 변환된다. smi인코딩이 UTF-8이 아니면 *.new.smi 확장자로 UTF-8 smi 파일이 생성된다. 백업을 위해 굳이 안지워도 되겠지만 지우고 싶으면, find . -name "*.new.smi" -delete로 최상위 폴더에서 한 번에 일괄삭제할 수 있다. 간혹 파일크기가 0인 srt파일이 생길 수 있는데 마찬가지로 find . -size 0 - delete 명령어로 일괄삭제 할 수 있다. 다른 운영체제에서 돌아가는 여러 변환 프로그램은 여기(http://hepaticboy.tistory.com/135)에서 확인할 수 있다.


아래 나온 Serviio dlna 서버는 smi, srt파일 모두 지원해 준다. 하지만 인코딩은 UTF-8 이어야 함을 기억하자. 크롬캐스트는 원래  smi는 지원하지 않는다. 하지만 Serviio가 smi를 srt로 내부적으로 잘 변환 후 크롬캐스트로 보내줘서 가능하게 했다. 노파심에 이야기 하지만, 자막 파일명은 당연히 동영상 파일명과 같아야 한다.


(3) NAS에 상용 미디어 서버 앱을 설치한다. (Qnap NAS 기준)

Qnap NAS 기본 dlna 서버는 2017년 1월 현재 자막 지원을 안해준다. 사실 이것은 dlna가 원래 srt같은 외부 자막에 대해 지원해주는 스펙이 없기 때문이다. Qnap NAS dlna가 정식 버전이 아닐때는 크롬캐스트 자막 지원이 되는 Twonky라는 미디어 서버를 설치할 수 있었는데, 후에 유료로 바뀌었고, App Center에서도 지원하지 않는다. Qnap은 스펙에 충실한 dlna기능을 구현한 것이므로, 뭐라고 할말은 없다. 그런데 dlna에서 확장 기능으로 자막지원이 되는 다른 장비들이 널려있으니, Qnap NAS 사용자로서는 너무 아쉽다. 하지만, Qnap NAS 기본 dlna 서버를 대체할 다양한 미디어 서버를 Qnap  App Center를 통해 쉽게 설치 할 수 있다.


2017년 1월 현재,  저사양 Qnap NAS에 설치가능한 미디어 서버는 다음과 같다. 결론부터 말하자면, 크롬캐스트에 자막 출력하려면 Serviio를 사용하면 된다. 미디어 서버별 특징을 보자.


가. Plex Media Server: srt, smi 모두 지원하지만, 자막을 선택하고 크롬캐스트에 스트리밍 하면, 무조건 Transcoding을 한다. 또 클라이언트 앱도 유료이다. (탈락)


나. TVMOBiLi: Transcoding없이 srt자막 지원한다. 하지만 Trial기간 지나면 유료이다. (탈락)


다. Serviio (Version 1.7.1): UTF-8 인코딩 된 smi, srt 자막 모두 지원한다. Pro 버전은 유료이지만, 무료인 기본 버전으로 크롬캐스트 자막 지원 잘 된다. (합격) 주의사항은 Serviio 앱을 열때 Qnap NAS 기본 dlna 서버가 여전히 활성화 되어 있으면 실행이 안될 수 가 있다. 실행 안되면, Qnap NAS 기본 dlna서버를 중지하면 된다. Serviio가 CPC949같은 윈도우즈 한글 인코딩으로 저장된 smi 자막파일도 표면상 지원된다(https://goo.gl/m1l8aj). 하지만 버그가 있는지 제대로 작동을 안한다. Serviio설정에서 이런거 저런거 다 시도해봤는데도 잘 안됐다. 그냥 고민하지 말고, UTF-8 자막으로 변환을 해서 사용하자.


미디어 서버가 NAS에 설치가 되면, 이것 저것 설치할 것들이 많다. 동영상 파일이 있는 최상위 폴더를 지정 해줘야 하고, Subtitle(자막)관련 설정(Enable Subtitles 체크)도 해줘야 한다.


(4) dlna 클라이언트로는 BubbleUPnP를 사용하자

Surviio 설치와 설정을 잘 마쳤으면, BubbleUPnP를 통해 Serviio dlna서비스에 접속을 해보자. 다른 dlna 안드로이드 앱과 다르게, 동영상 정보에 자막이 존재하는 지 등의 정보를 쉽게 확인할 수 있고, 크롬캐스트 스트리밍 콘트롤도 안정적으로 해준다.


동영상 파일명 밑에, MKV, subtitles (mdedia server)정보를 통해 자막이 지원됨을 미리 알 수 있다.


동영상 파일의 Meta 정보를 조회하면, External Subtitles가 present하다고 나온다. Stream #2로 srt 자막 정보가 있는 것을 볼 수 있다. dlna 서버로 부터 크롬캐스트로 자막 정보가 전송될 수 있다는 말이다.


파일명 아래 정보에 MP4만 나와있고 Subtitle정보가 없다. Stream #1 밖에 없다. 앞의 그림과 다르게 자막이 없다는 것을 쉽게 알 수 있다.



결론,

저사양의 Qnap 나스를 dlna를 통해 크롬캐스트로 동영상 스트리밍시 자막이 잘 나오게 하려면,

(1) 자막 스트리밍을 지원하는 추가 기능이 있는 dlna 미디어 서버를 설치해야 한다. Qnap App Center의 Serviio가 지원해 준다.

(2) Serviio 서버는 smi, srt 한국어 인코딩 자막도 잘 지원해준다. 자막 파일명은 동영상 파일명과 똑같이 해줘야 한다.

(3) dlna 클라이언트 앱으로는 BubbleUPnP앱이 편리하고 안정적이다.



이 글이 도움이 되셨다면, 공감을 눌러주세요!

저작자 표시
신고
3 Comments
댓글쓰기 폼