오늘은 U5PVR 의 메인기능인 PlexMediaServer 의 초기 사용방법에 대해서 알아보겠습니다.



1. Plex Media Server 설정화면 접근하기


먼저 U5PVR 에 할당된 IP를 체크합니다. 


체크 방법은 이전 게시글을 참고해 주시길 바랍니다.


해당 아이피로 아래의 URL 로 웹브라우저에 접속합니다.



접근하게 되면 아래의 페이지가 열립니다.


로그인을 하지 않고 로컬로만 사용하실 분들은 우측 아래의 이건뭐죠? 를 눌러서 스킵하시면 됩니다. (비추천)


플렉스 계정이 있으신 분들은 로그인을 하시고 진행하시고 없으신 분들은 아래 주소로 가셔서 생성해 주시길 바랍니다.


https://www.plex.tv/sign-up/





2. Plex Media Server 초기설정 진행하기


아래처럼 로그인을 진행합니다.




원하시는 서버의 이름을 설정한 다음에 집 밖에서 사용하실 분들은 체크해 주시길 바랍니다.



다음은 미디어 라이브러리 설정 부분입니다. 

(미디어 라이브러리 설정은 Plex Pass (유료) 와 무료 계정 간 차이가 있습니다.)



지금 등록하려는 미디어를 선택하시면 됩니다.


영화 TV쇼 를 누르게 되면 PlexMediaServer 가 메타데이터를 검색해서 예고편, 줄거리, 포스터 등등을 받아 줍니다. 


저는 그냥 뮤직비디오 밖에 없기 때문에 기타 비디오를 누르고 넘어가겠습니다.



현재 추가하려는 라이브러리 이름을 입력합니다.



미디어 파일이 들어있는 곳을 선택합니다.



기본적으로 마운트 되어 있는 USB 외장하드나 SATA 디스크는 왼쪽 목록에 뜹니다. 


위치를 정해 주시면 됩니다. 



다수의 미디어 폴더를 지정하고 싶으면 '미디어 폴더 찾아보기' 를 또 눌러 추가해 줍니다.



저는 음악도 있어서 음악 라이브러리도 추가 하였습니다.



아래는 선택적으로 해주시길 바랍니다.



설정이 완료 되었습니다 !


아래에 보시면 미디어 파일을 분석중이라는 알림이 뜹니다.



분석이 진행되면서 아래처럼 섬네일이 보이기 시작합니다.





3. Plex Media Server 세부설정 하기


설정으로 이동하여 고급설정 보이기를 누릅니다.


다음으로 스트리밍 품질을 모두 원본으로 합니다.


(U5PVR 이 트랜스코딩 능력이 매우 부족하기 때문에 아래 처럼 설정을 진행합니다.)



아래처럼 특이한 경우 오디오만 트랜스코딩을 할 수 있도록 아래처럼 설정을 하고 자막의 경우 자동으로 맞춥니다.



다음은 원격접속 부분입니다.


기본적으로 Plex Media Server 는 UPNP 를 통해 공유기와 통신하여 포트를 자동으로 열어서 원격접속이 가능하게 해 줍니다만, 그에 에러가 있을 경우에 수동포트 할당으로 작업하시길 바랍니다.



이에 따른 공유기 설정은 아래와 같습니다.




4. 웹으로 접속한 Plex Media Server 둘러보기


아래 영상은 웹에서 직접 재생을 해 본 것으로


Plex Media Server 의 최적화 기능을 통해 사전 인코딩 된 영상을 재생시키는 화면입니다. 



다음은 음악 라이브러리 사진입니다.


음악 라이브러리의 경우 Plex Pass 사용자는 한글로 메타 데이터 생성이 가능하나 무료 계정은 그 기능이 없습니다만... 아래처럼 어느 정도 정리가 잘 됩니다. ㅎㅎ



웹에서 음악을 재생시키면 아래와 같이 재생이 됩니다. 




1편 초기설정하기 게시글을 마치도록 하겠습니다 



http://cafe.naver.com/mk802/20196






안녕하십니까 ?  EddyLab입니다.


오늘은 처음 제가 영상 캡춰라는 방법으로 
U5PVR 동작 동영상을 만들어서 올려 드립니다. ^^


영상 캡춰는 S50의 HDMI IN을 이용하여 캡춰를 하였습니다.

U5PVR HDMI Out ==> S50 HDMI IN 방식입니다. ^^

S50 HDMI IN 화면 캡춰는 1080P@30fps까지만 지원됩니다.

그렇기 때문에, U5PVR에서는 4K해상도로 설정을 하여도,
1080P 8bit로만 해상도가 맞춰지므로, 동영상 화질은 원본 화질과 다릅니다. ^^

아직 4K 화면캡춰장비는 고가라서 구입하기가 어려움이 있으므로,
U5PVR 동작 사항에 대한 참조를 해 주시기 바랍니다.





1. U5PVR Rebooot 170308


먼저 U5PVR리부팅을 실시 해 보았습니다.
이는 리부팅 후, 어느정도 시간이 걸리는지를 확인 하기 위함입니다. ^^



2. U5PVR Setting 170308


U5PVR리부팅 후, 런처 화면은 30초 정도 걸립니다.
이후, U5PVR의 린백런처 상단의 추천 컨텐츠가 올라오기 까지는 
약간 추가 시간이 소요됩니다. (약1분10초)

이는 린백런처의 시스템에서 불러오는 것이라서,
개발쪽에서는 막을 수 없습니다. ^^

그리고 백그라운드에서는 리눅스 동시 부팅이 실행되고 있습니다.



3. U5PVR eON TV 170308


U5PVR의 지상파/케이블(암호채널제외) 방송 시청입니다.
Test는 지상파 TV 채널을 일반 안테나와 연결하여 test하였습니다.



4. U5PVR live Channel 170308


U5PVR의 TVH와 연동하여 방송시청 가능 test를 하였습니다.



5. U5PVR LAN 4K Blu ray 170308


U5PVR의 LAN 연결 test
자체 재생기 4K 재생 및 Blu-ray ISO파일 재생 test 입니다.



16년형 LG OLED TV - U5PVR - 내장 재생기로 

도깨비 4K@60fps@10bit ts파일 재생 (재생 문제 없음)



http://cafe.naver.com/mk802/19962


U5PVR 구글 드라이브 연동하기 [rclone]



안녕하세요. 도정진입니다.


이번에는 U5PVR 리눅스에서 google 드라이브를 연동하는 방법에 대해서 알아보도록 하겠습니다.


프로그램으로 rclone 을 사용하며 드라이브 방식으로 마운트 하여 사용하는 데에는 이만한 프로그램이 없다고 생각되어 이 프로그램으로 가이드를 작성합니다. 


추가적으로 rclone 은 구글 드라이브만 지원하는 것이 아니라 아마존 무제한 클라우드 등등 많이 지원을 하고 있음으로 각 설정 방법은 아래의 구글 드라이브를 추가하는 것과 비슷합니다. 공식 홈페이지에서 참고하여 설정해 주시면 되겠습니다.



http://rclone.org/



1. rclone 설치하기


먼저 rclone 은 파일 시스템을 마운트 할 때, fuse 파일 시스템을 사용합니다. 따라서 fuse 패키지를 설치해야합니다.


추가적으로 zip 파일의 압축을 풀기 위해서 unzip 패키지도 설치합니다.


apt-get install fuse unzip


다음으로 rclone 바이너리를 홈페이지에서 받습니다.





받은 파일의 압축을 풀기 위해서 아래의 명령을 입력합니다.


# unzip rclone 입력하시고 TAB 키로 자동완성하시면 편리합니다.

unzip rclone-v1.35-linux-arm.zip

cd cd  rclone-v1.35-linux-arm


압축을 풀고 해당 폴더로 이동하셨으면 바이너리 파일을 편리하게 실행할 수 있게 PATH 환경변수에 포함된 디렉터리로 이동시킵니다. 저는 /usr/bin 에 옮기도록 하겠습니다.


cp rclone /usr/bin


# 실행 권한이 필요하기 때문에 아래의 퍼미션 설정을 합니다.

chmod a+x /usr/bin/rclone


다음으로 rclone 이 정상적으로 실행이 되는지 체크합니다.


아래처럼 뜨면 정상적으로 설치가 된 상태입니다.


root@u5pvr-debian:~# rclone version

2017/03/17 22:29:22 Config file "/root/.rclone.conf" not found - using defaults

rclone v1.35




2. 구글 드라이브 연동하기


마운트 폴더를 하나 만들기 위해서 /mnt/gdrive 라는 폴더를 만듭니다.


mkdir /mnt/gdrive


아래 명령을 통해서 구글 드라이브를 연동합니다.


root@u5pvr-debian:~# rclone config

2017/03/17 22:32:17 Config file "/root/.rclone.conf" not found - using defaults

No remotes found - make a new one

n) New remote

s) Set configuration password

q) Quit config

n/s/q> n

# 새로운 리모트를  생성해야 함으로 n 을 입력합니다.


name> djj9405

# 마음에 드는 이름을 하나 입력하십시오.


Type of storage to configure.

Choose a number from below, or type in your own value

 1 / Amazon Drive

   \ "amazon cloud drive"

 2 / Amazon S3 (also Dreamhost, Ceph, Minio)

   \ "s3"

 3 / Backblaze B2

   \ "b2"

 4 / Dropbox

   \ "dropbox"

 5 / Encrypt/Decrypt a remote

   \ "crypt"

 6 / Google Cloud Storage (this is not Google Drive)

   \ "google cloud storage"

 7 / Google Drive

   \ "drive"

 8 / Hubic

   \ "hubic"

 9 / Local Disk

   \ "local"

10 / Microsoft OneDrive

   \ "onedrive"

11 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)

   \ "swift"

12 / Yandex Disk

   \ "yandex"

Storage> 7

Google Application Client Id - leave blank normally.

client_id> 

Google Application Client Secret - leave blank normally.

client_secret> 

# 정확하게 모르겠지만 보통 필요가 없습니다. 그래서 아무것도 입력하지 않고 엔터를 누릅니다.


Remote config

Use auto config?

 * Say Y if not sure

 * Say N if you are working on a remote or headless machine or Y didn't work

y) Yes

n) No

y/n> n

# 쉘에서 작업을 하기 때문에 자동 설정이 되지 않습니다. 따라서 n 을 입력하여 수동설정으로 넘어갑니다.


If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?client_id=202264815644.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=b02c34056754881ab1b1d15b4e5bf67d

Log in and authorize rclone for access

Enter verification code>

# 이부분은 구글 계정과 연동하기 위한 부분입니다. 작업하실 때 나오는 링크를 복사하시고, 미리 브라우저에서는 연결할 구글 계정으로 로그인을 해 둡니다. 그 상태에서 위 주소를 붙여넣어 코드를 받으시면 됩니다.

각기 주소가 다르기 때문에 위 주소를 복사하지 마시고 작업중인 장비에서 나온 주소를 복사하여 작업하시길 바랍니다.


저의 경우 위 주소로 이동해 보면 아래와 같이 권한 허용창이 뜹니다.


아래에 나온 코드를 복사하여 붙여 넣습니다.



If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?client_id=202264815644.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=b02c34056754881ab1b1d15b4e5bf67d

Log in and authorize rclone for access

Enter verification code> ----------------------------------------------

# 브라우저에서 복사한 코드를 붙여넣습니다.


--------------------

[djj9405]

client_id = 

client_secret = 

token = {"access_token":"---------------------------------------------------------------------------------------------------------------------------------------------------------------","token_type":"Bearer","refresh_token":"----------------------------------------------","expiry":"2017-03-17T23:39:37.623176291+09:00"}

--------------------

y) Yes this is OK

e) Edit this remote

d) Delete this remote

y/e/d> y

# 설정이 맞느냐고 물어보는데 맞으니 y 를 눌러줍니다.


Current remotes:


Name                 Type

====                 ====

djj9405              drive


e) Edit existing remote

n) New remote

d) Delete remote

s) Set configuration password

q) Quit config

e/n/d/s/q> q

# 설정이 끝났음으로 q 를 눌러서 종료해 줍니다.


root@u5pvr-debian:~# 



이렇게 구글드라이브 등록이 끝났습니다.



3. 구글 드라이브 마운트하기


아래 명령을 통해서 마운트 합니다.


# 마지막에 2번에서 설정한 공유이름: (뛰우기) 마운트할 폴더를 입력합니다.

# 데몬형식으로 도는게 아니기 때문에 사용자 쉘이 종료되어도 작동 유지를 위해서 nohup 과 & 을 사용합니다.


nohup rclone mount --allow-non-empty --allow-other --uid 1023 --gid 1028 --max-read-ahead 2G --acd-templink-threshold 0 --checkers 16 --quiet --stats 0 djj9405: /mnt/gdrive/ &


# 한편, 안드로이드 파일 권한과 맞아야함으로 어쩔 수 없이 uid 와 gid는 1023 1028 이 되어야 합니다.


위 명령어로 실행 시켜본 결과는 아래와 같습니다.


혹시나 무슨 문제가 있어서 프로그램이 강제 종료될 시에 현 작업폴더에서 nohup.out 을 참고하여 에러 내용을 확인하시길 바랍니다.


root@u5pvr-debian:~# nohup rclone mount --allow-non-empty --allow-other --uid 1023 --gid 1028 --max-read-ahead 2G --acd-templink-threshold 0 --checkers 16 --quiet --stats 0 djj9405: /mnt/gdrive/ &

[1] 29639

root@u5pvr-debian:~# nohup: ignoring input and appending output to 'nohup.out'


root@u5pvr-debian:~#


root@u5pvr-debian:/mnt/gdrive# ls

call_record  imei ??????  torrent  ????????? ??????  ???????????????  ???????????????

# 정상적으로 구글드라이브에 있는 파일이 보입니다.



(주) djj9405은 본인의 ID로 수정하셔야 합니다.



4. 구글 드라이브 마운트한 것 사용해보기


기본적으로 리눅스 펌웨어에는 FTP 가 내장되어 있습니다. SAMBA 의 경우 안드로이드 자체에 내장이 되어 있습니다. 


(삼바는 리눅스 패키지로 설치를 하지 않은 이유가 삼바는 내부망 전용이기 떄문에 안드로이드 자체 삼바로도 기능이 충분하다고 생각하기 때문입니다.)


이번에는 FTP 로 접근을 시도해 보도록 하겠습니다.



정상적으로 제 클라우드에 있는 파일들이 보입니다.



클라우드에서 FTP 를 통해 로컬로 파일을 다운받아보았습니다.


평소에 7MB/s 정도 나오는데 오늘은 약간 낮게 나오네요.



업로드도 마찬가지 입니다.



통상 사용하는 CPU 사용량은 아래와 같습니다.


4K VP9 60FPS 영상을 구글 드라이브를 /mnt/gdrive 에 마운트 하여 테스트를 해 보았는데 rclone 의 CPU 사용량이 올라가서 재생이 한번씩 끊기는 현상이 있었습니다. 이 부분은 최적화 할 수 있는 부분인지 체크를 해보고 있습니다.



안드로이드에서는 아래와 같이 사용이 가능합니다. 아쉬운점은 미디어 센터에서는 보이지 않는다는 점이네요.



ES 파일탐색기를 통해 /mnt/gdrive 로 접근하여 에이핑크 영상 재생해 보았습니다.



사진으로 보여드렸지만 재생이 매끄럽게 되다가 한번씩 멈춤현상이 있습니다.

rclone CPU 사용량 때문이네요..



다음은 Kodi 에서 사용기입니다.

코디의 경우 내장 디스크 를 선택하고 /mnt/gdirve 로 이동하면 됩니다.



아래처럼 정상적으로 파일이 보입니다. 


똑같이 에이핑크 영상을 돌려 보았습니다. (4K VP9 60FPS)



코디의 경우 초반에 버퍼링이 쬐끔 걸리지만 재생이 잘 되었습니다.




5. 부팅시 자동 마운트 하기


이 부분은 유선랜이 꼽혀있지 않은 분들은 불안정한 방법입니다.

무선랜의 경우 연결이 될때까지 딜레이가 있기 떄문에 리눅스 부팅과정 중 네트워크가 물려 있지 않으면 에러가 발생하기 떄문입니다.

그러나 유선랜의 경우에는 리눅스 부팅이 되기 전에 네트워크가 붙기 때문에 문제가 없습니다. 

(차후에 네트워크 상태를 확인하여 실행하는 스크립트를 만들어 보도록 하겠습니다.)


기본적으로 /etc/rc.local 파일을 사용하여 부팅 시 자동실행을 하게 합니다.


nano /etc/rc.local


#!/bin/sh -e

#

# rc.local

#

# This script is executed at the end of each multiuser runlevel.

# Make sure that the script will "exit 0" on success or any other

# value on error.

#

# In order to enable or disable this script just change the execution

# bits.

#

# By default this script does nothing.


# hostname 

/etc/init.d/hostname.sh start


# google drive mount

mkdir /mnt/gdrive

su root -c "nohup rclone mount --allow-non-empty --allow-other --uid 1023 --gid 1028 --max-read-ahead 10G --acd-templink-threshold 0 --che$




exit 0


테스트를 해 본 결과 정상적으로 작동하며 특이사항은 없습니다.


이 부분을 init 스크립트를 통해 rc 로 등록이 가능하도록 가이드를 찾는 중입니다.



감사합니다.



+ Recent posts