솔직히 내 블로그는 유명한 블로그로 키우기 보다는 나의 일상적인 스토리를 남기기 위한 지극히 개인적인 블로그이다. 그래서 특별한 내용이 없는 것이 사실이다. 또한, 검색엔진에 그렇게 많이 노출되는 것이 즐겁지만은 않다.


 그래서.. 검색엔진은 변 생각하지 않고 있었는데... 이달 초에 갑자기 트래픽이 아래와 같이 5배 이상 증가하였다. 

 



 왜 그런가 하고 봤더니.. 헐.. ..... 네이버 검색엔진에 본 블로그가 검색되는 것이다. 그것도 상당히 앞부분에....

 네이버 .... 정말 사용하는 사람이 많구나...  나의 블로그를 좋게 봐줘서 정말 고맙다 !!
Posted by 4D :

 내가 가지고 있는 아이폰이나 아이패드 그리고 맥북에어에서 동영상을 시청할 목적으로 각종 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 :


  이제는 잘 기억도 안나는 2001년 과외를 하여  번 돈으로  후지 2600z을 43만원이라는 거금을 들어 구입을 했다. 그리고 그때부터 하드디스크에 쌓여 나가는 나의 사진파일들...... 이건 당췌 정리하면 할수록 점점 귀찮아지는 사진 파일.... 

  여러가지 사진 프로그램을 동원해서 사용해 봤으나 귀찮은 것 자체가 더 귀찮고 하면 할수록 또 귀찮아지는 구조들... 그래서 한 7년 전인가 프로그램 3총사를 만들었었다. 바로 pn과 pm 그리고 pt 이다. 그리고 지금까지 이것들을 이용하여 사진을 날짜별로 구별하여 정리하여 왔다.

   1. PN : Photo namer => 사진의 EXIF 정보를 이용하여 사진의 이름을 날짜와 시간을 BAES로 변경하여 준다.
   2. PM : Photo mover => PN에서 이름이 변경된 사진파일들을 사진의 이름을 기준으로 특정장소로 이동시켜 준다. 이동시 사진파일의 이름에서 날짜를 읽어들여 날짜의 디렉토리를 만들고 그 속에 복사하여 옮긴다.
   3. PT : Photo tramsfer => 사진파일을 WEB에 올릴 수 있도록 FTP를 통하여 자동으로 전송시켜 준다. 이 블러그 사용전에 지금도 돌아가고 있는 나의 홈페이지를 위하여 사진을 전송하는 프로그램을 사용하였다.



 지금까지 PN과 PM을 잘 사용하고 있다. 다음은 PN과 PT를 이용하여 사진을 정리하였을 때 나타나는 디렉토리 구조이다. 전부 자동으로 생성되어 날짜 폴더로 딱딱 들어간다. 중요한건 이 프로그램이 요즘 잘 동작하지 않는다는 것이다.. 아 짜증.. !@!@!@

 
 이것은 PN과 PM이 CLI구조의 cmd 환경에서 돌아가기 때문에 일어난 일이 아닌가 한다. 윈도우 환경이 바뀌면서 디렉토리 Path와 파일명의 규칙이 바뀌면서 돌아가지 않는 상황이 발생하게 되었다. 




 여.... 긴..... 여...... 백







  이런 저런 이야기는 집어 치우고 이제 autoit을 이용하여 사진의 exif 정보를 읽어들인다음 이것을 기준으로 사진의 파일명을 날짜 형식으로 변환하는 프로그램을 작성하여 보자.

 친절하게도 Autoit의 게으른 고양이님(Lazycat)께서 다음의 라이브러리를 만들어 주셨다.  접속링크는 클릭시 로그인을 요구한다. 

=======================================================================
이걸 함 써먹어 볼라고 했는데, 불행하게도 안되더라. 그래서 위의 UDF 는 Drop
=======================================================================

  다른 방법으로 예전부터 계속 써먹어 오던 exiflist 라는 프로그램을 이용하는 방법이다. Autoit을 이용하여 cmd 창의 exiflist를 실행시켜 사진이 찍힌 날짜를 얻어내고 이것을 기준으로 파일명을 전환한 다음 Target 디렉토리로 카피하면 pn과 pm의 수행하는 기능을 전부 가능하게 되었다.

 아래 파일은 그림이다.. 복사하지 말자.

 
원본소스 파일이다. 안에 들어있는 exiflist는 저작권이 있는 자료이다. exiflist의 자세한 내용은 아래의 링크를 참고하자

http://www.hugsan.com/EXIFutils/html/features.html

자 이제 autoit의 파일이다. 스크립트가 돌아가는 구조는 다음과 같다. 

 1. exiflist가 존재하는가? 없으면 다운로드 받아 c:\windows에 넣는다. 
 2. 사진이 있는 폴더를 입력받는다. 사진파일은 jpg로 한정한다.
 3. 사진의 리스트에서 exiflist을 이용하여 사진이 찍힌 날짜를 분리해낸다. 
 4. 3번의 날짜를 이용하여 파일명을 바꾸고 적절한 디렉토리로 복사한다. 
 5. 같은 날자 같은 시간 같은 초에 찍힌 사진이라면 끝에 A~Z까지의 영문자로 구별할 수 있도록 한다.


   만약 다운받아서 사용하고자 한다면 13열의 Target base를 자신에 맞게 수정하고 사용하길 바랍니다. ^^

   



음... 이제 하드에 쳐박혀 있는 사진 데이터들을 정리하여 보자. 

 ** 기능 추가 예정

 1. avi 및 mp4등의 동영상 자료도 날자에 맞게 이름을 바꾸어 정리할 수 있는 기능 추가
 2. filecopy가 아닌 filemove의 기능을 수행할 것 (이건 소스코드에서 filecopy를 filemove로 단순하게 고치면 된다. )


Posted by 4D :

Connected by DNS server, DNS service