본문 바로가기

카테고리 없음

Plexdrive 옵션

먼저 말씀드릴 것은 아래 내용들은 아주 일반적이고 아주 이론적인 사항들입니다.
옵션에 대한 최적화 값은 본인 환경에 맞춰서 세팅해야 합니다.

 

plexdrive 의 사용 목적

- 구글드라이브 내의 영상을 재생시 버퍼링이 생기지 않게 하며

- 과도한 트래픽으로 구글드라이브에서 밴 당하지 않게 하기 위함

 

스트리밍 & 버퍼링

로컬 디스크가 아닌 외부에 있는 동영상을 재생할 경우에는 전체 파일을 모두 다운로드받은 다음에 플레이되는 것이 아니라 영상의 재생 시간이 경과함에 따라 필요한 부분의 데이터만 실시간으로 받으면서 플레이하게 됩니다.

예를 들어 10G 파일을 재생할때 10G 전체를 다운받는 것이 아니라, 영상의 재생시간에 맞춰 필요한 부분을 다운받는데 이를 스트리밍이라고 합니다. (유튜브를 비롯한 모든 동영상 플랫폼은 모두 스트리밍 방식입니다.)

 

스트리밍이 네트워크의 데이터를 효율적으로 사용하는 것이 최대 장점이지만 재생 시점에 필요한 데이터를 다운로드 받는게 느릴 경우는 , 다음 조각을 받기 전까지 재생이 멈추게 되는 단점이 있습니다. 이를 '버퍼링이 걸린다.' 라고 표현합니다. 따라서 스트리밍 방식에서는 다음에 필요한 데이터 조각을 '일정부분' 미리 받아 놓게 되며, 이 일정부분을 '버퍼' 라고 합니다.

 

Chunk(청크)

plexdrive 에서도 데이터 조각을 나눠서 미리 받아 놓는데, 이를 청크라고 부릅니다. 

원활한 재생을 위해서는 이 청크를 어떻게 관리하느냐가 관건입니다.

- 청크의 개수는 많을수록 좋습니다.

- 청크의 사이즈는 일단 작을수록 좋습니다. 

- 청크의 체크/로드 쓰레드는 많을수록 좋습니다.

 

옵션 : chunk-size

1개의 청크 크기를 지정합니다.

일반적으로는 작을수록 더 좋은 효과가 납니다.

예를 들어 청크1메가와 청크 100메가를 비교하면

- 1메가만 다운받고 바로 재생을 시작하느냐와

- 100메가를 다운받고 재생을 시작하느냐의 차이입니다.

100메가로 설정하면 최초 재생시작이 느릴수 있습니다.

반대로 1메가로 설정하면 100메가를 한번에 요청하는 대신 100번 왔다갔다 하므로 더 많은 대역폭도 응답속도를 필요로 합니다.

 

옵션 : max-chunks

청크의 최대개수를 지정합니다. 

plexdrive 는 청크를 받고, 재생에 사용하고 난 다음에 바로 삭제하지 않고 보관하게 됩니다.

청크 개수를 100개로 지정하면, 100개만큼의 청크를 받은후 101번째를 받을때 최초의 1번째 청크를 지우게 됩니다.

 

옵션 : chunk-check-threads, chunk-load-threads

청크를 확인하고 다운로드 받을 쓰레드의 개수를 지정합니다.

4로 지정하면 동시에 4개의 청크를 다운로드 받을 수 있습니다.

많을수록 좋은 효과가 나지만, 과할 경우 시스템성능 하락과 구글 드라이브에서 밴 당할 수 있습니다.

 

최대 버퍼 사이즈

chunk-size * max-chunks = 최대 버퍼 사이즈 = 메모리 사용량

최대 버퍼 사이즈는 많을수록 좋지만, 그만큼 메모리 사용량이 늘게 되므로 주의해서 사용해야 합니다.

 

재생했던 구간으로 이동 성능

이미 재생했던 구간은 plexdrive 에서 청크를 받아놓은 상태이므로 비교적 빠르게 이동할 수 있습니다.

이 부분이 느리면 최대 버퍼 사이즈를 늘리면 됩니다.

 

재생하지 않은 구간으로 이동 성능

재생하지 않았던 구간으로 점프하게 되면, plexdrve 에서 예상하지 못했던 부분의 청크를 받아와야 재생을 할수 있습니다. 이때 chunk-size 가 크다면 그만큼 큰 청크를 받은 후에 재생이 시작되므로 chunk-size 가 작을수록 좋습니다.

 

옵션예

chunk-size = 1M

max-chunks = 1000

이라면 최대 1*1000 = 1G 의 메모리를 사용하게 되고

1메가씩 잘라서 다운로드 받으며,

최대 1000개까지 메모리에 쌓아두게 됩니다.

일반적으로 1080P 까지는 이 정도로 하셔도 크게 불편하지 않고, 720P 정도는 가끔 로컬에 있나 헷갈릴수도 있습니다.

 

그외 옵션 조절은 본인 환경에 맞춰서 구성하시면 됩니다.