본문 바로가기

SBC관련

PLEX 트랜스코딩 끄기

트랜스코딩이란 서버가 클라이언트 능력에 맞게 영상을 다시 인코딩해서 전송해주는 훌륭한 기능이다. 하지만 1만원짜리 SBC(내경우 Rock Pi S)에서 PLEX 서버를 끊김없이 돌리려면 이 트랜스코딩 기능을 꺼야한다. 그런데 이 트랜스코딩 기능을 서버측 PLEX 에서 끄는 기능이 없어보인다. 대신 PLEX 클라이언트에서 설정을 해주면 트랜스코딩 없이 재생이 가능하다. 위와 같이 Remote Streaming을 맥시멈으로 하면 PLEX 서버 측에 트랜스코딩을 요구하지 않는것 같다. 대신 클라이언트는 PLEX 서버에 있는 미디어를 디코딩할 능력이 되야만 재생이 가능하다. 한 예로 아이폰으로 녹화된 영상을 CPU 성능이 열약한 Rock Pi S PLEX서버에 올려 놓고 아이폰 PLEX 클라이언트에서 위와 같은 설정으로 재생을 하니 트랜스코딩 없이 재생이 잘되었다. 대신 Remote Streaming을 맥시멈이 아닌 다른것으로 설정할 경우 CPU 능력 부족으로 재생이 안된다는 에러 메세지가 뜨고 영상은 재생되지 않았다. 이런 설정의 한가지 단점은 Remote Streaming을 맥시멈으로 한 상태에서 동일한 영상을 아이폰으로 재생후 집TV에 연결되어 있는 크롬캐스트로 미러링 할 경우 재생을 할 수 없었다. 그 이유는 해당 영상을 CPU 처리능력이 매우 낮은 크롬캐스트가 디코딩할 능력이 없었기 때문이 아닐까 한다. 이렇게 열약한 CPU 처리 능력을 가진 클라이언트를 위해 만든게 트랜스코딩이겠지만 요즘처럼 빠른 네트워크 환경과  핸드폰같은 클라이언트 하드웨어가 발달한 세상에서 9.9달러 서버에 트랜스코딩은 너무나도 가혹해 보인다.

 

아무튼 이 트랜스코딩 때문에 재생이 안되어 여기저기 검색을 많이 해봤는데 거의 99%의 글이 PLEX 트랜스코딩을 끄는 것은 불가능하다는 게 대부분이여서 많이 당황했는데 이 부분은 PLEX 초보자들에게 오해를 불러일으킬 여지가 많다. 정확히 말하면 PLEX 서버측에서 일방적으로 트랜스코딩을 끄는 방법이 없다는 소리지 트랜스코딩을 끈 미디어를 전송할수 없다는 것은 아니라는 것이다. 쉽게 말하면 PLEX 서버에서 트랜스코딩을 끊을 수 없다는 것이지(서버옵션에서 "Disable video stream transcoding"을 활성화해도 트랜스코드가 작동된다.) PLEX 클라이언트가 트랜스코딩 없이 원본만 전송해달라고(위 사진처럼 PLEX 클라이언트에서 미디어를 원본으로 전송해달라는 옵션선택)하면 PLEX 서버측에서 미디어를 원본으로 전송해준다는 것이다.  (PLEX 서버는 트랜스코딩하지 않고 미디어 전송)

 

성능이 저렴한 NAS나 SBC에서 PLEX서버를 돌리는 사람이라면 당연히 클라이언트에서 트랜스코딩을 끄고 미디어를 요청해야만 왠만한 미디어를 재생할 수 있을 것이다. 하지만 불특정 다수에게 PLEX서비스를 제공하는 사람이라면 아마도 성능이 좋은 NAS가 필요할 것이다. 왜냐하면 서버측에서 트래스코딩을 끊는 방법이 없기 때문에 서버측 상황을 모르는 누군가가 클라이언트 설정에서 트랜스코딩을 끄지 않고 쓰면 PLEX 서버는 트랜스코딩을 사용할 수 밖에 없기 때문이다.