아래글은 제가 초보입장으로서 PLEX를 구성하며 겪은 경험을 바탕으로 쓴글입니다.
틀린부분이 있으면 지적해 주시면 감사하겠습니다.
PLEX는 무료에 가까운 매우 좋은 NAS 프로그램입니다.
하지만 제각각으로 구성된 다양한 동영상을 다양한 플랫폼에 맞추어 PLEX로 재생시키는 일은 쉬운일이 아닙니다.
PLEX는 클라이언트에 설치된 환경에 따라 클라이언트가 재생하기에 무리라고 생각하는 동영상은 트랜스코딩을 발생시킵니다. 트랜스코딩은 경우에 따라서 클라이언트 상황에 맞추어 재생한다는 면에서 좋게 볼 수도 있지만, 트랜스코딩이 돌아가는 우리의 NAS는 과부하를 견뎌야하며, 동영상의 화질은 원본보다 떨어지며, 심지어는 뚝뚝 끊기기 까지 합니다.
트랜스코딩 속도를 높이기위해 SSD 추가를 하거나, 램을 증설하는 일은 사실 근본적인 해결책이 아닙니다.
아래 방법대로 하시면, NAS에 아무런 부하를 주지 않으면서 PLEX서버 구동이 가능합니다.
트랜스코딩을 피하기 위해서는 근본적으로, 원본 동영상을 가공을 통해, 어느정도 획일화를 시켜줘야 하는 일이 필요합니다. 엔비디아 쉴드로 이런 가공없이 모든 동영상을 재생하는 방법도 있겠지만,
저희 부모님 세대, 또는 지인들에게 엔비디아 쉴드와 같은 고성능 플레이어를 거금을 주고 구매해서 외부입력으로 재생하는 일은 현실적으로 너무나도 번거로운 일이기에 거의 불가능이라고 생각됩니다.
따라서 스마트TV 그 중에서도 LG 또는 삼성 TV의 스마트TV PLEX앱 설치가 가능하다는 점은, 리모콘 한번이면 구동되는 넷플릭스, 왓챠와 만큼 PLEX는 태생부터 좋은 조건을 가지고 있습니다.
쓸데없는 얘기가 많았고, 이제부터 PLEX 구성에 대해 얘기해보겠습니다.
제가 조사한 PLEX에서 트랜스코딩이 발생되는 조건은 아래와 같습니다.
1. 국제규격 자막인 SRT가 아닌 국내에서만 주로 통용되는 SMI 자막등 으로 구성되어 있을때,
2. 더 이상 TV 제조사가 지원하지 않는 오디오코덱인 DTS 또는 TRUE-HD 로 동영상이 인코딩되어 있을때
3. 스트림카운트가 30이 넘어갈 때
4. (추가) 기본 자막의 언어설정이 und (미지정) 으로 되어 있을 때
5. (추가) HDR 지원이 되지 않는 TV 또는 재생기에서 HDR 파일을 재생할 때
6. (추가) 영상 프로파일이 Constrained baseline H264 일 경우
이 정도가 제가 겪고 들은 얘기입니다.
따라서 위의 조건을 피해서 아래의 방법과 같이 동영상을 가공하면 됩니다.
1. SMI 자막을 모두 SRT 규격으로 변경한다.
여러 프로그램와 사이트에서 가능하겠지만, 가장 빠르고 대량으로 처리가 가능한 'SUBTITLE EDIT'
프로그램을 추천합니다. 이 프로그램 설치 후 TOOL 메뉴의 BATCH CONVERT 를 이용하면
한번에 수백개의 SMI 자막도 순식간에 SRT 자막으로 변경해 줍니다.
(왕창 선택해서 드래그앤 드롭으로 올려주고 변환하면 끝)
https://github.com/SubtitleEdit/subtitleedit/releases
저처럼 동영상에 대한 지식이 많지 않은 분들을 위해 아래 설명을 잠깐 하겠습니다.
동영상에서 MKV 확장자를 가진 파일을 많이 보실 수 있는데, MKV는 코덱 또는 압축이 아니라
'컨테이너'라고 부르는 일종의 그릇과 같은 개념의 파일입니다.
즉 MKV 안에 여러개의 영상파일과 여러개의 오디오파일도 (영어, 한국어, 러시아어 등등) 담을 수 있고
자막도 0개에서 수십개까지 담을 수 있습니다. 어찌보면 동영상계의 압축파일 같은 개념입니다.
우리는 이런저런경로를 통해 구한 MKV 파일의 구성을 파헤치고 들어가서
쓸데없는 것은 지우고(예: 러시아 더빙 오디오 삭제), 어떤 부분은 변경하고(예: DTS → AC3)
어떤 부분은 추가 (예: SRT 자막을 내장 시킴) 하여 PLEX에서 트랜스 코딩발생 없이
원본파일을 그대로 재생 시킬 수 있도록 가공해 줘야 합니다.
MKV파일의 영상부분은 H264(AVC1) 또는 H265(HVC1), MPEG 등등 다양한 코덱이 있지만
대부분의 상용TV에서 영상부분은 무리없이 재생됩니다. 따라서 영상부분은 그대로 두고 저희가 신경쓸 것은
MKV파일의 자막과 오디오 부분입니다.
**** MKV 파일 가공방법****
2. DTS, TRUE-HD → AC3 또는 AAC 로 오디오 코덱 변경
먼저 가지고 계신 동영상 파일의 오디오 코덱이 무엇으로 인코딩 되어 있는지 알아야 합니다.
'팟플레이어'로 영상을 재생시키고 오른쪽 마우스 버튼을 눌러(CTRL+F1) 재생정보를 보면
오디오 부분에 오디오 코덱이 뭐라고 적혀 있는지 봐야 합니다.
만약에 DTS 또는 TRUE-HD로 인코딩되어 있거나 스마트폰 용 오디오코덱 OPUS 등 으로 되어 있다면 변환해야 합니다.
LG TV 지원 코덱 http://eguide.lgappstv.com/manual/kr/kor/d2/p1/12005.html
삼성 TV 지원 코덱 https://www.samsungsvc.co.kr/solution/143276
보시면 DTS와 TRUE-HD는 라이센스가 있는 오디오 코덱이어서, LG 나 삼성TV에서 더 이상 지원하지 않습니다.
이를 무료 범용 오디오코덱인 AC3 또는 AAC로 변경해주면 됩니다.
상기 지원목록에 AC3가 없긴 해도 잘 재생되니 걱정안하셔도 됩니다.
이런 오디오 변환이 음질에서 손실이 아예 없다고 할 수는 없겠지만, 이를 재생하는 클라이언트의 사운드 장비에 많은 재원을 투입하지 않고는 이를 알아차리기 어렵습니다.
변환작업을 가장 손쉽게 처리해주는 프로그램은 BOX4 3 입니다. 더 이상 업데이트는 되지 않고 몇몇 아쉬운점이 있긴 하지만
이 프로그램의 최대 장점은 기존의 방식인 MKV 파일에서 오디오 파일 추출 > 오디오 파일 변환 > 다시 MKV로 패키징 하는 과정을 한번에 해준다는 것입니다.
개발사 공식 사이트도 없습니다. 하기 주소에서 받으시면 됩니다.
https://www.videohelp.com/software/BOX4
사용법은 검색을 참고 부탁드립니다. 여기에서 외부 자막파일도 추가시켜서 MKV로 패키징이 가능하긴 한데, 오류가 많은 관계로, 오디오만 변환하는게 좋습니다.
원본 오디오가 DTS 5 채널 또는 TRUE-HD 7 채널로 되어 있으면 이에 맞춰서 출력도 AC-3 5채널로 같이 인코딩하는게 오디오 손실이 덜 날것같습니다. 원본이 2채널이면 출력도 굳이 5채널이 아닌 2채널로 세팅하는게 맞을거 같습니다.
영상 인코딩과는 달라서 수분이면 변환이 끝납니다.
이 과정을 거치면 오디오 부분 용량이 줄어서, MKV 파일 크기가 좀 줄것입니다.
2) MKV 최종 패키징
위의 단계를 잘 따라하셨다면 SRT로 변환된 자막, 그리고 AC3 또는 AAC로 오디오가 인코딩 되어 있는 MKV 동영상파일 2개가 있을 겁니다.
이대로 NAS에 올려서 PLEX로 구성하는데 아무 무리가 없지만, 자막파일인 SRT도 MKV에 같이 넣어서 패키징 하여 1개의 파일로 깔끔하게 만들 수 있습니다.
여기에서 사용되는 프로그램은 MKVTOOLNix 입니다. 마찬가지로 사용법은 다른곳에서 검색을 부탁드립니다.
PLEX에 맞추어서 설정해줄 것은 동영상 파일을 MKVTOOLNIX로 열었을때 파일 내 항목(자막, 소리, 챕터 등등) 30개가 넘어가지 않도록 쓸데 없는 외국자막 같은것들은 패키징 할 때 빼버립니다. 이런것들이 30개가 넘어가면 트랜스코딩이 발생된다고 보고된바 있습니다. MKVToolNix로 파일을 열때 영상 파일 + 외부자막 SRT파일을 같이 드래그앤 드롭으로 열어서 MKV 안에 포함시키면 좋습니다.
프로그램 다운로드 https://mkvtoolnix.download/
같이 올린 한글자막은 기본트랙 플래그를 YES로 놓아줘서 제일 먼저 읽도록 해주고,
추가된 외부자막의 이름이 UNDERTERMIND (미지정) 으로 되어 있는데, 이를 KOREAN으로 바꿔주면 자막이 여러개라면 나중에 동영상 볼때 좋겠죠.
추가사항 - 자막파일이 'UND' (미지정)으로 되어있으면 Plex에서 재생 오류가 발생하므로 반드시 언어 지정을 해줘야합니다.
간혹 어떤 동영상파일은 DTS와 AC3 두개의 오디오를 또는 그 이상의 여러개의 오디오를 가진경우가 종종 있는데, 만약 DTS가 기본트랙 플래그 '예' 로 설정되어 있으면, DTS 오디오 삭제 없이 AC3 오디오의 기본트랙 프래그를 '예', DTS 오디오의 기본트랙 플래그를 '아니오'로 바꿔주면 PLEX TV에서 재생 시 AC3 오디오를 먼저 읽게 되어 트랜스 코딩이 발생하지 않습니다,
이럴 경우 사운드 장비만 지원된다면 나중에 PLEX에서 동영상 재생 시 오디오만 선택해서 DTS로 바꿔서 재생도 가능합니다. 물론 그냥 DTS삭제하고 AC3만 남겨놓으셔도 되고요. 어째든 이렇게 모두 설정하셨으면 합치기로 최종적인 MKV파일을 생성하시면 됩니다.
수고하셨습니다. 이제 LG TV에서도 삼성TV에서도 스마트폰으로도 깔끔하게 원본재생이 되는 MKV파일을 완성시키셨습니다.
복잡한 과정같지만, 하다보면 기계적으로 위의 작업을 수행하는 자신을 발견하실 수 있으실 겁니다.
아무쪼록 PLEX 구성 잘하시길 바라며
별도의 PLEX 팁으로 동영상 파일명을 설정하시는데 어려움이 있었는데, 여러 시리즈의 경우 파일명에
'1편 트랜스포머 - Transformers (2007)',
'2편 트랜스포머 패자의 역습 - Transformers Revenge of the Fallen (2009)'
같이 쓸 경우 PLEX 인덱스 과정에서 1편 이라는 글씨까지 같이 인덱싱을 돌리면서 원하는 항목을 찾지 못하는 경우가 많습니다.
이때 파일명의 1편, 2편이라고 쓴 부분을 [1편] [2편] 과 같이 [] 괄호에 넣어주게되면 [] 내 텍스트는 PLEX에서 인덱싱 하는데 읽지 않고 주석으로 인식하여 무시하는 규칙이 있으니, 이곳에 주석 또는 X편, X편과 같은 글을 달면 좋을것 같습니다.
'[1편] 트랜스포머 - Transformers (2007) [완전 강추]' 이런 식으로요
4. 추가 수정사항 (기본자막 언어 설정 UND → Kor 또는 Eng 로 변경)
간혹 영화파일 재생 시 "재생 오류" "변환에 실패했습니다. 오류로 인해 트랜스 코더가 종료되었습니다" 메시지가 나오며 중지되는 경우가 발생합니다.
해당 메시지는 자막파일의 언어 태그가 '알 수 없음' 또는 '미지정' 또는 'Und'로 되어있기 때문입니다.
해결방법은 Mkvtoolnix로 영상파일을 열어서 자막 항목에서 'UND'로 되어있는 부분을 'KOR' 또는 'ENG'로 변경해야 합니다.
5. 추가 수정사항 (HDR → SDR)
4K 해상도 영상파일의 경우 종종 HDR로 세팅되어 있는데 HDR을 지원하는 재생기 또는 TV에서는 원본파일 그대로 재생이 잘 됩니다. 하지만 HDR을 지원하지 않는 재생기 또는 TV에서는 트랜스코딩이 발생하여 화질 저하를 일으킵니다. 이 경우 해결방법은 HDR 영상파일을 SDR 영상파일로 톤매핑 변환해주어야 합니다. 변환은 샤나 인코더가 무난하게 지원합니다. 단 변환 시간은 엄청나게 오래 걸립니다. 2시간 영화파일의 경우 대략 3~8시간 소요됩니다.
또한 HDR 에서 SDR로 톤매핑 변환은 색감에 지대한 변화가 일어납니다. 영상의 우수성과 재생의 유연성 사이에서 적절한 타협이 필요할 것입입니다.
샤나 인코더 https://shana.pe.kr/
영상파일이 HDR로 톤매핑이 되어있는지 알기위해서는 팟플레이어의 경우 플레이어 하부에 HDR 노란 불빛이 들어와 있음으로 알 수 있거나, 샤나인코더의 경우 영상파일을 불러오면 영상부분에 HDR 표기가 되어있으면 HDR로 톤매핑 되어있는것입니다.
참고사항 (추천 유틸리티 JMkvpropedit)
영상파일의 언어 또는 디폴트 유무를 일괄로 빠르게 변경하는 유틸리티입니다.
다량의 영상파일을 일일히 MKVtoolnix로 재 인코딩할 필요 없이, 이 유틸리티를 사용하면 언어와 소리, 영상의 속성을 빠르고 손쉽게 일괄 변경 가능합니다.
https://github.com/BrunoReX/jmkvpropedit/releases/tag/v1.5.2
6. 추가 수정사항 (Constrained Baseline H264 → H265)
H264 Constrained baseline 으로 인코딩된 영상이 일부 LG webOS 기기에서 트랜스코딩을 발생시키는것으로 파악됩니다.
따라서 이 영상들은 샤나인코더로 H265 영상으로 변환해주면 이런 문제가 해결됩니다.