NAS & ODROID/OMV 3 NAS

오드로이드 XU4 + OMV 로 자작 NAS 구축하기 - 7. Plex Media Server

awesometic 2017. 7. 24. 11:25
반응형

FTP로 동영상을 스트리밍하실 수 있습니다. 하지만 원본 동영상이기 때문에 영상에 따라 데이터가 굉장히 많이 들 수 있어요. 2GB 가량의 예능이나 드라마 한 편을 봐도 파일을 그대로 가져오기 때문에 보통 와이파이 없이는 할 수 없습니다. 

Plex는 데이터 걱정을 덜어줍니다. 트랜스코딩을 지원하기 때문에, 원하는 동영상 해상도를 지정해서 스트리밍을 쏴줍니다. 예를 들어, 720p 예능 한 편이 2GB여서 부담이 됐다면, 480p 정도로 트랜스코딩하여 부담을 줄일 수 있어요. 트랜스코딩 후 실제 데이터 사용량은 1GB 밑이 됩니다.

또한 Plex는 스트리밍하고자 하는 장치에서 지원하지 않는 코덱이라도 트랜스코딩을 통해 지원하게끔 해줍니다. 트랜스코딩이 결국 실시간 인코딩이기 때문에 가능한 일이죠.

하지만 역시 서버의 성능이 좋아야 합니다. 인코딩, 디코딩에 높은 성능이 필요한 영상 코덱이라면 서버에 부담이 많이 가중됩니다. 그래도 XU4는 720p~1080p정도 x264 드라마, 예능 정도라면 혼자 볼 땐 충분히 받쳐주는 것 같더라구요. 압축률이 높고 비트레이트가 아주 높은 (10000kbps 이상)의 영상이 아닌 이상 볼 만합니다.

게다가 Plex는 TV 영상이나 드라마, 음악 등 공공 미디어에 대한 메타 데이터를 외부 서버로부터 가져와 붙여줍니다. 만약 태양의 후예라면, 단순한 파일 리스팅이 아닌 각 화별 썸네일, 줄거리, 매 화 이름 등등을 보여줍니다. 외국 드라마의 경우 테마 곡까지 들려주고, 영화는 예고편도 가져와주더라구요. 파일 이름을 통해 외부 서버로부터 가져오는 것이기 때문에 별도의 파일 네이밍 작업이 조금 필요하고, 국내 TV나 음악의 지원을 위해 별도의 작업 또한 필요하지만 모아놓고 보면 굉장히 뿌듯해지는 기능입니다.




1. Plex 설치

OMV Extras 메뉴로 갑시다.

Plexmediaserver 항목이 있습니다. 클릭해서 편집을 누르시면 활성화 스위치가 있는데, 활성화하신 다음 저장 후 적용하시면 됩니다.

그리고 OMV 플러그인 메뉴로 가 plex 라고 검색해 설치합시다.



2. Plex 활성화

OMV Plex Media Server 메뉴로 갑시다.

데이터베이스 볼륨으로 장착한 HDD 선택한 다음 활성화해준 후 저장, 적용합니다.

그러면,

이렇게 바뀝니다. Plexpy addon 항목이 생겼는데 얘는 무시해주셔도 됩니다. 위에 "플렉스 웹 클라이언트"라는 버튼을 누릅시다.

이런 창이 뜹니다. 간단히 회원가입 후 넘어가줍시다.

넘어가시다 보면 이런 화면이 뜹니다. 친근한 이름을 정해주시고, 집 밖에서도 미디어에 접근 가능하도록 허용하신 후 다음을 눌러줍니다.

라이브러리를 추가해줍니다.

이름을 적당히 넣어주시고, 언어는 한국어로 해줍니다. 그리고 왼쪽의 "폴더 추가" 메뉴를 누르시면, "미디어 폴더 찾아보기" 버튼이 있습니다. 얘를 누르면,

이런 창이 뜹니다. OMV에선 저장장치가 보통 "/srv/dev-disk-by-id-..." 형식의 디렉토리에 마운트되는 것으로 보입니다. 해당 폴더를 선택하시면 자신의 저장 장치 내용이 뜰 겁니다. 적절한 폴더를 선택한 후 추가해줍니다.

그리고 마지막으로 "고급" 메뉴를 눌러줍니다.

여러 가지 상세한 설정을 하실 수 있습니다. 보통 아무 것도 안 만져도 되지만, 필요하신 분은 잘 읽어보신 다음 설정해주시면 될 것 같습니다. 참고로 영화의 경우 "Localized title" 옵션이 있는 것 같습니다. 이걸 체크해주시면 한글을 1순위로 줄거리와 제목이 뜰 겁니다.

"라이브러리 추가" 버튼을 누르시면 추가된 라이브러리를 보실 수 있습니다. 필요에 따라 전부 다 추가됐다 싶으면 "다음" 버튼을 눌러 넘어가줍시다. 앱을 받아라, 사용 정보를 전송해달라 하는데 읽어보신 후 넘어가시면,

이렇게 뜹니다. 지정한 폴더에 미디어를 넣으시면 해당 미디어의 포스터와 정보가 보여질 겁니다. 만약 안 뜬다면, Plex 미디어 준비 페이지를 참고해 파일 네이밍을 다시 해주시거나, 아래의 국내 TV 메타 데이터를 위한 추가 작업을 하시면 됩니다.



3. 기본 설정

Plex 설정을 위해 설정화면으로 가야 합니다. 메인 화면에서 오른쪽 위의 스페어, 드라이버가 X 자로 놓여진 아이콘을 누릅니다. 왼쪽에서 두번째 아이콘입니다.

1) 트랜스코딩

트랜스코딩 관련 설정을 통해 XU4에 부하를 줄여줍시다.

"서버" - "트랜스코더" 메뉴로 갑시다.

품질과 동시 트랜스코딩 수를 정해줄 수 있습니다. 이것도 중요하지만, 먼저 오른쪽 위의 "고급설정 보이기" 버튼을 클릭합시다.

뭔가 항목이 많아졌습니다. 저희가 건들 건 품질과 임시 디렉토리, 프리셋입니다.

품질은 "속도 위주 인코딩"으로 맞춰주시고, 마지막에 x264 프리셋을 "최고로 빠르게"로 맞춰줍니다. 마지막 항목은, 모바일 기기에서 감상하기 전 Plex에서 미리 트랜스코딩을 해놓는 최적화 작업을 따로 설정해줄 수 있는데 그 작업에 해당하는 것으로 보입니다. 추가된 영상을 바로 보시지 않고 오랜 시간 후 보시게 된다면, 기본값인 "매우 빠르게"로 보시면 될 것 같습니다. 최적화를 사용하시지 않는 분들은 무시하셔도 됩니다.

그리고 트랜스코더 임시 디렉토리를 설정해줄 수 있습니다. 트랜스코딩할 땐 인코딩된 조각 파일들이 서버 어딘가에 저장되어야만 합니다. 기본값으로 데이터베이스 볼륨 아래에 저장됩니다. 여기서, 외장하드에 데이터베이스 볼륨을 설정하면 접근 속도와 전송 속도가 OS가 설치된 저장장치에 비해 느리다는 단점이 있습니다만, SBC를 쓰는 저희는 OS가 설치된 SD카드가 외장하드보다 더 느리기 때문에 그대로 두겠습니다. 만약 PC나 노트북 등에 OMV를 설치하신 후 이 글을 보시는 분들이 계시다면 경로를 /tmp 아래로 바꿔주시길 바랍니다.


2) 라이브러리 자동 갱신

Plex 라이브러리로 묶인 폴더에 새로운 동영상 파일을 추가할 때 매번 갱신을 해주지 않으면 Plex에 나타나질 않습니다. 동영상을 추가할 때마다 갱신을 해주는 건 굉장히 귀찮기 때문에 자동으로 갱신하게끔 설정해줍시다.

"서버" - "라이브러리" 메뉴로 갑시다.

"내 라이브러리 자동갱신" 과 "변경사항이 발견될 때 부분적인 스캔 실행" 을 체크해준 후 스크롤을 내려 "변경 저장" 버튼을 눌러줍니다. 부분 스캔 관련 옵션은 "고급설정 보이기" 버튼을 클릭했을 때만 나타납니다.

이 설정들 외에 다른 설정들도 읽어보시고, 필요하신 걸 해주시면 되곘습니다.



* Plex 플러그인 설치를 통해 국내 TV, 음악 호환성 높이기

참고: https://forums.plex.tv/discussion/75675/korean-movie-tv-music-metadata-agents

Plex 는 기본적으로 외국(특히 미국?) 서비스라, 모든 나라의 모든 영상 매체를 호환하진 않는 것 같습니다. 나와도 영어 설명으로 나올 확률이 크구요.

우린 한국인이기 때문에 OMV 플러그인을 통해 국내 Agent를 추가해줘야 좋습니다. 꼭 하셔야만 하는 과정은 아닙니다.

여기서 조금 전문스러워집니다. 먼저 UAS 해제 포스팅을 참고하여 SSH 접속해줍시다.

플러그인을 다운받아야 합니다.

한 줄씩 복사해서 붙여넣어 주세요. /srv/dev-.. 로 시작하는 경로만 각자 다를 수 있습니다.

아래 명령어를 통해 받아줍니다.

wget https://github.com/hojel/DaumMovie.bundle/archive/master.zip
wget https://github.com/hojel/NaverMusic.bundle/archive/master.zip

아마 master.zip, master.zip.1 로 받아졌을 겁니다. 얘네 압축을 플러그인 폴더에 해제해야 합니다. Plex 플러그인 폴더는 그 Plex를 처음 활성화할 때 지정한 데이터베이스 볼륨에 존재합니다. 따라서 사람마다 다르기 때문에 각자 경로를 찾아 지정해줘야 해요.

다음 명령어를 통해 경로를 찾고,

df | grep /dev/sda1 | awk '{print$6}'
/srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1

결과로 나온 경로를 참고해 압축을 풀어줍니다.

unzip master.zip -d /srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/
unzip master.zip.1 -d /srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/

그리고 해당 경로로 가 Plex 프로그램이 플러그인인 것을 알아챌 수 있도록 이름을 바꿔줍시다.

cd /srv/dev-disk-by-id-usb-JMicron_USB_to_SATA_bridge_DB00000000013B-0-0-part1/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/
mv DaumMovie.bundle-master DaumMovie.bundle
mv NaverMusic.bundle-master NaverMusic.bundle

마지막으로 소유권을 Plex로 바꿔줍시다.

chown -R plex:nogroup DaumMovie.bundle
chown -R plex:nogroup NaverMusic.bundle

이젠 Putty를 종료하셔도 됩니다.

exit

설정을 잘 하셨다면, 라이브러리 편집을 통해 이번에 추가한 국내 Agent로 바꿔줄 수 있습니다.

추가한 라이브러리에서 "편집" 메뉴로 갑시다. 대시보드(메인 화면)를 통해 아래 그림처럼 가시면 됩니다.

"고급" 메뉴를 누르시면,

에이전트 부분이 있습니다. 이걸 Daum Movie로 바꾸시면 됩니다.



* Plex 수동 업데이트

OMV 플러그인은 해당 프로그램을 OMV화해서 제공하는 게 아니라, OMV 웹에서 쉽게 다룰 수 있도록 프로그램과 OMV 사이에 다리만 놔주는 느낌입니다. 모든 게 그런 건 아닙니다만 Plex 플러그인은 그 성질이 좀 더 강해서, 다른 앱들과 다르게 OMV 업데이트할 때 Plex의 버전까진 올라가질 않습니다.

그래서 Plex를 수동으로 업데이트해줘야 합니다. 여기서 또 오드로이드 서버에 SSH 접속을 해야만 합니다.

먼저 OMV Plex Media Server 메뉴에서 활성화를 해제해준 후 플러그인을 설치할 때처럼 SSH에 접속합니다. 활성화 해제하실 때 저장 및 적용 잊지 마시구요.

그리고 아래 명령어를 통해 현재 작동 중인 Plex 프로그램을 확실히 중지합니다.

service plexmediaserver stop

ARM 용 Plex 최신 버전을 제공해주는 저장소에서 최신 버전 Plex 설치 파일 링크 주소를 복사합니다.

2017년 7월 24일 현재 1.7.5.4035입니다. 해당 저장소엔 항상 최신 파일만 유지되는 것으로 보이니, 있는 파일을 우클릭하여 링크를 복사하시면 됩니다.

그리고 wget으로 설치 파일을 받아줍니다. 파일 이름이 다를 수 있으니 꼭 확인하시고, 맞는 주소를 입력해주세요.

wget https://dev2day.de/pms/pool/main/p/plexmediaserver-installer/plexmediaserver-installer_1.7.5.4035-313f93718-1_armhf.deb

dpkg 명령어를 통해 설치합니다.

dpkg -i plexmediaserver-installer_1.7.5.4035-313f93718-1_armhf.deb

OMV Plex Media Server 메뉴에서 다시 활성화해줍니다. 이미 활성화가 되어 있는 경우 해제 후 다시 활성화해줍니다. 각 단계마다 저장 및 적용을 하셔야만 하구요.



* 안드로이드 스마트폰 연동과 포트포워딩

https://play.google.com/store/apps/details?id=com.plexapp.android&hl=ko

Plex 에서 공식적으로 안드로이드 앱을 제공해줍니다. 설치하고 키면 로그인을 할텐데, 로그인까지 하시면 바로 오드로이드 XU4의 Plex 서버가 뜹니다.

하지만 아직 사용하실 수 없습니다. Plex는 계정에 서버 IP와 포트를 저장해놓습니다. 그 계정은 Plex 본사에서 관리하구요. 안드로이드 앱으로 접근하려면 앱 로그인 -> 본사에서 서버 IP, 포트 확인 -> 연결 순서를 거치는데, 지금은 포트포워딩이 되어있지 않기 때문에 사용하실 수 없습니다. 사용하시려면 같은 네트워크(같은 공유기) 사이에서 http://{오드로이드IP}:32400/ 주소를 통해서만 사용하실 수 있어요. 포트포워딩 적용은 다른 포스팅에서 다룹니다.

반응형