본문 바로가기

Papyrus/Dizzy Report

윈도우 미디어 플레이어의 원격 미디어 스트리밍

윈도우 미디어 플레이어(WMP)의 동영상 재생 능력은 그냥 그럭저럭 쓸만한 수준이다. 사실, 지금도 곰 플레이어와 같은 전문 동영상 플레이어와 비교해보면 자막 처리 및 스킵 능력에 있어서 불만족스럽지만, 예전 WMP9 시절과 비교해본다면 엄청나게 발전한 것이다. WMP이 기본적으로 지원하는 동영상 포맷도 ffdshow와 같은 DirectShow 필터를 설치하지 않는다면 매우 제한적이다. 그러나, WMP는 기본 설계 자체는 그렇게 나쁜 편이 아니고, 확장하기에 따라 얼마든지 편리하게 쓸 수 있으며, 윈도우에 기본 내장되어 배포된 탓에 쓸만한 스킨도 흔한 편이다.

그리고, 윈도우 7에서만 지원하는 WMP12는 원격 미디어 스트리밍이라는 아주 흥미있는 기능을 제공한다. 스트리밍 서버를 구축하는 것은 예나 지금이나 상당히 귀찮은 작업인데, 실제로 불특정 다수를 상대로 스트리밍 서비스를 제공하려는 사람보다는, 멀리 떨어진 곳에서 자신의 서버와 연결하여 개인 미디어 파일을 재생하려는 사람이 더 많을 것이다. WMP12의 원격 미디어 스트리밍은 이와 같은 상황을 목적으로 한다. Windows Live 서비스를 사용하여 사용자를 온라인 인증하며, 미디어 파일을 스트림 아웃할 서버와 단지 수신하기만 할 리시버로 구성된다. 스트림 아웃을 해줄 서버는 반드시 홈 네트워크에 속해 있어야 하며, 리시버는 까페, 공항과 같은, 누구나 쉽게 접근할 수 있는 네트워크에 연결되었을 때 구성된다.

이와 같은 구성은 디스크 관리 정책에서 매우 유용하다. 즉, 미디어 파일 각각은 자주 쓰이지는 않지만 매우 용량이 크다. 그렇다고 이런 파일들은 이동할 때마다 일일이 복사하는 것은 매우 원시적이며, 디스크를 낭비하는 셈이 된다. 스트리밍 서버에만 이런 미디어 파일들을 두고, 필요할 때마다 스트리밍 서비스를 통해 미디어 파일을 재생하는 것이 가장 이상적이지만, 스트리밍 서버를 구성하는 것은 쉬운 일이 아니다. WMP12의 원격 미디어 스트리밍은 이와 같은 상황에 특화되어 있다.

먼저, 원격 미디어 스트리밍 서비스는 미디어 파일을 스트림 아웃 할 쪽과 스트림을 수신할 쪽이 결정되어야 한다. 그런데, 이 과정은 명시적으로 사용자가 지정하는 것이 아니라, 해당 WMP가 속한 네트워크에 의해 결정된다. 즉, 윈도우 7의 네트워크 유형 중 홈 네트워크에 속해 있는 WMP인 경우 스트림 아웃을 하는 서버 역할을 할 수 있고, 일반 공용 네트워크에 속해 있는 WMP라면 스트림을 수신할 수만 있다. 먼저, 스트림 아웃을 할 WMP가 속한 네트워크를 홈 네트워크로 변경하라.




네트워크 유형을 변경한 뒤 몇몇 네트워크 관련 프로그램들은 정상적으로 동작하지 않을 수도 있는데, 그것은 방화벽에서 해당 프로그램들이 공용 네트워크에서만 방화벽 예외 적용을 받도록 설정되어 있기 때문이다. 그런 프로그램들은 방화벽 설정에서 홈 네트워크에서도 예외 적용을 받도록 설정하면 된다. 네트워크 유형을 변경했다면, WMP를 실행하고 스트림 - 홈 미디어에 인터넷 연결 허용을 선택한다.




이 화면은 블로그지기가 이미 온라인 인증을 설정했기 때문인데, 처음 설정하는 사람은 홈 미디어에 인터넷 연결 허용을 선택하면 된다. 그러면 Windows Live에 의한 인증을 선택할 수 있는 대화 상자가 출력될 것이다. 물론, 이 경우에도 Windows Live와 연동될 모듈이 필요한데, 이 모듈이 설치되어 있지 않다면 대화 상자에 제공된 링크를 따라 해당 모듈을 설치하면 된다. 스트림 아웃을 수행하는 윈도우는 절전 모드를 실행하지 않는다.

위의 과정을, 원격지에서 수행할 WMP에서도 동일하게 적용한다. 이 과정을 마친다면, 일단 직접적인 설정은 모두 끝난다. 원격지에서 WMP를 실행하여, 스트림 - 연결 진단을 실행하면 방금 설정을 마친 컴퓨터와 원격 컴퓨터가 동일한 Windows Live ID를 사용하여 묶여 있으며, 둘 사이의 연결을 확인해 줄 것이다. 여기서 모두 확인이 떨어진다면 스트림 아웃을 하는 쪽의 라이브러리가 원격 WMP의 라이브러리에 나타나며 스트리밍 서비스를 받을 수 있을 것이다. 다음 화면에 나타나고 있는 라이브러리는 WMP를 실행하고 있는 윈도우의 로컬 디스크를 읽은 것이 아니라, 스트림 아웃을 해주고 있는 WMP의 라이브러리를 나타낸 것이다.




그러나, 언제나 그렇듯이 이렇게 깔끔하게 설정이 완료되는 일은 없다. 보통, 가정에 있는 컴퓨터는 공유기를 거쳐 네트워크에 연결되며, 이럴 경우 공유기의 포트포워딩 기능을 사용하여 해당 포트로 들어오는 데이터가 WMP를 실행하고 있는 컴퓨터와 연결되도록 손을 봐줘야 한다. 포트포워딩 설정은 각자 가진 공유기의 설명서를 살펴보고, WMP가 사용하고 있는 포트는 스트림 - 연결 진단 - 포트 전달 정보를 보면 알 수 있다. MS에서는 여기서 알려주는 포트 외에, 443 포트 역시 10245 포트와 연결하는 것이 성능에 좀 더 좋다고 한다.


이렇게 설정이 완료되면, 원격지에서 WMP를 실행했을 때 WMP 왼쪽의 기타 라이브러리에 항목들이 추가되고, 이곳을 클릭하면 WMP가 스트림 아웃을 하는 쪽의 라이브러리 정보를 'WMP 라이브러리'로 정리하여 보여준다. 물론, 자신이 가진 모든 미디어 파일 포맷 형태를 정리해주는 것은 아니며, 이것은 전적으로 해당 코덱을 설치하는 쪽에서 이 작업을 해주느냐 마느냐에 달려 있다. 특히, ogg 파일 포맷은 WMP가 기본적으로 인식하지 못하는데, 해결 방법은 다음을 참조하라 : http://celdee.tistory.com/741 다음 그림은 스트림 아웃을 하는 WMP의 라이브러리 비디오 정보를 읽어온 것이다.


 







미디어 파일을 재생할 때 스트리밍 서비스의 품질은 네트워크가 크게 좌우하지만, 보통 음악 파일은 버퍼링을 거의 느끼지 못할 정도이며, 대형 동영상 파일을 재생할 때도 그렇게 문제가 될만한 상황은 아니었다. 약간의 버퍼링 지연이 있긴 했지만, 커다란 동영상 파일을 일일이 들고 다니지 않아도 된다는 편리함에 비추어볼 때, 충분히 감수할만하다.




WMP는 미디어 플레이어 그 자체로서의 성능은 그럭저럭 쓸만할 뿐이지만, 간단하면서도 쓸만한 스트리밍 기능은 그 부족한 부분을 상쇄하고도 남는다. 일일이 음악 파일이나 동영상 파일들을 복사해서 다녀야 할 필요가 없이, 네트워크에만 연결되어 있다면 어디서나 스트리밍 서비스를 받을 수 있기 때문에 포터블 기기의 저장 공간도 아낄 수 있으며, 파일 관리도 매우 단순해진다. 문제는, WMP12는 윈도우 7에만 내장되어 있다는 것인데, 이것은 WMP12의 원격 미디어 스트리밍 기능 자체가 윈도우 7의 이런저런 부가 기능에 크게 의존하고 있는 만큼 어쩔 수 없다는 생각이 든다.

윈도우 7이 아닌 다른 플랫폼을 운영하고 있는 사람이라면, Tonido와 같은 솔루션을 한번 검토해보기 바란다 : http://www.tonido.com/ Tonido는 플래시를 사용하고 있으며, 온라인 JukeBox와 같은 기능을 웹에서 바로 사용할 수 있도록 해준다.


덧글(2012.3.18): WMP 원격 스트리밍의 가장 큰 문제는 자막이 출력되지 않는다는 것인데, mkv나 ogg와 같은 미디어 컨테이너 형식이 경우에는 해결 방법이 있다. mkv 형식의 파일은 어떤 자막을 출력할지 컨테이너 파일 내부에서 선택할 수 있으며, mkv 스플리터가 DirectShow 필터로 설치되어 있다면 원격 스트리밍으로 자막을 출력할 수 있다. 그러나, 이와 같은 미디어 컨테이너 형식의 파일이 아니라면 WMP는 smi 파일을 원격에서 읽어 오버레이 출력하지 않는다. 차기 WMP에서 개선되기를 기다리는 수 밖에 없다.