내가 가지고 있는 아이폰이나 아이패드 그리고 맥북에어에서 동영상을 시청할 목적으로 각종 avi 파일을 m4v로 컨버팅하고 몰래 숨겨둔 서버에 올려 놓았다. 그리고 각 애플디바이스에서 http 프로토콜을 사용하여 부르면 동영상이 아무런 문제가 없이 플레이 되었다. 파일을 다운 받는 것도 없었고 앞뒤 원하는 부분에서 바로 플레이가 가능하였고 다운받아 저장하는 방식이 아닌 실시간으로 플레이되는 아무튼 너무나 좋은 동영상 플레이환경이다.

 그동안 좀 이상한 생각도 들었다. 분명 이건 스트리밍 방식이 아닌 http 프로토콜인데 어찌하여 스트리밍과 동일한 서비스를 지원하는 걸까? 문득, 일반 PC에서 같은 방식으로 (http 사용) 동영상을 불러보았더니.. 결과는 애플디바이스와 달랐다. 어라.. 이건 전체를 다운로드 받고 플레이 하는 방식이였다.

 윈도우에서 사용하는 익터넷 익스플로어, 사파리, 크롬, 퀵타임, 곰플레이어 등등 모두 http을 사용하여 동영상을 호출하면 전체 동영상을 모두 다운 받고 난 후에 재생이 시작되는 것이였다. 애플 디바이스는 그렇지 않은데??? 왜 얘들은 그럴까?

  한참을 인터넷을 뒤져서.. http live streaming 이라는 아주 생소한 것을 찾았다. 

HTTP Live Streaming (also known as HLS) is an HTTP-based media streaming communications protocol implemented by Apple Inc. as part of their QuickTime X and iPhone software systems. It works by breaking the overall stream into a sequence of small HTTP-based file downloads, each download loading one short chunk of an overall potentially unbounded transport stream. As the stream is played, the client may select from a number of different alternate streams containing the same material encoded at a variety of data rates, allowing the streaming session to adapt to the available data rate. At the start of the streaming session, it downloads an extended M3U playlist containing the metadata for the various sub-streams which are available.

 출처 : http://en.wikipedia.org/wiki/HTTP_Live_Streaming

 대충 읽어보면 애플에서 hls라는 것을 만들었는데, http를 기반으로한 미디이 스트리밍 방식이라는 것을 알 수 있다. 파일을 잘게 쪼개서 전송하고 그것을 바로바로 이어서 플레이 함으로써 전체를 다운 받는 수고를 덜 수 있다는 내용이다.  (맞나?? ㅡ,.ㅡ;;)

 대충 읽어봐서는 서버쪽도 hls를 지원해서 파일을 쪼개서 보내줘야 할 것 같은데. 나의 동영상 서버는 단지 ubuntu에 apche을 올린 단순한 웹서버인데 어찌하여 이것이 동작하는 지 이해는 알 수 없지만, 아무튼 이것 때문인 것 같다는 생각이 들었다. 그럼 애플 디바이스에서 된다는 말인 것 같은데.. 왜 윈도우용 퀵타임은 안되는 것일까? 그러고 보니.. quicktime X 이라는 것이 보이는 구나.. 그렇다.. 윈도우용 퀵타임은 버젼이 7이라 지원을 하지 않는 것이다. 

 이제 다 이해했다. 

 하지만, 불행하게도 이런 신기술인 hls는 우리가 일반적으로 쓰는 곰플레이어나 kmplayer에서는 지원하지 않는 방식이였다. 내가 사용하는 디바이스가 우연찮게 애플이 많아서 저 방식이 우연하게 들어 맞았고 나는 세부적인 내용의 이해도 없고 그냥 잘 되네? 하고 사용한 격이였고, 이제 윈도우 기반에서 사용해보고자 하니 그게 안된다는 것을 알았다. 

 그리고 이걸 되게 하는 방법이 없을까? 이것이 되면 동영상들을 모두 웹서버에 올리고 전부 스트리밍 방식으로 시청하면된다. 즉 디바이스에 제한없이 인터넷이 연결된 곳에서는 동영상을 그냥 시청하면 되는 일종의 나만의 동영상 서버가 완벽하게 구축이 되는 셈이다. 

 hls에 대해서 이해하는데 2시간을 보내고 hls client player을 찾는데 1시간을 보냈다. 그리고 찾았다. beta이긴 하지만 이넘이 가능했다. 
 

VLC Media player인데 Official Version은 1.1.X가 최신인데 얘는 1.2이다. 즉, 베타라는 말이지.. 얘가 hls를 지원했다.

http://demo.anevia.com:8080/ott/vlc.php

에서 다운 받을 수 있으며 설명파일은 다음과 같다. 

 ==== 여긴  여백 ===



 As there were no free Windows PC video player compatible with HLS format, Anevia decided to co-sponsor the development of the HLS client within VLC Media Player. It will be officially integrated in release 1.2.0, which will mark the 10th birthday of this great open-source software. However, you can download from this web page an exclusive beta version. We provide here a Windows binary installer, and a source pack that can be compiled for Windows, MacOSX and Linux OS.  Once this version of VLC is installed on your PC, be careful to add ".m3u8" file extension to be opened as a VLC network stream. 


 대충 읽어보면 hls를 지원한다는 말이다. 아직까지 배포가 안되고 있어서 개발자 싸이트에서만 받을 수 있다는 점에 유의핮.  중요한건 이걸 설치하면 window에서도 http를 이용하여 스트리밍을 받을 수 있다는 말이다. 동작 또한 아주 깔끔하며 앞뒤보기 전부다 잘 지원했다. 광고도 없고 디자인도 매우 심플하다.  괜찮은 듯 하다. 

 실험이 사용한 환경은 다음과 같다.  단순하게 동영상 서버를 활용할 목적이라면 avi도 사용가능하니 더할나위 없이 좋을 듯하다. hls의 신기술을 이렇게 쉽게 사용할 수 있을 줄은... 나도 몰랐다.

 서버 : Ubuntu 10.04.1 LTS & Apache
 PC : Windows XP Pro

 

Posted by 4D : 댓글 3

댓글을 달아 주세요


Connected by DNS server, DNS service