Rev. 2.73

SasCam Webcam Server와 자바스크립트로 스트리밍 웹캠을 구현해 보았습니다. SasCam Webcam Server는 무료로 제공되는 웹캠 서버 프로그램입니다. 이 서버는 캠에 잡힌 화면을 하나의 jpg파일에 저장하고 지속적으로 업데이트하는 역할을 합니다. 플래시기반 웹캠 뷰어는 저장된 jpg파일을 계속해서 불러오는 구조로 만들어져 있더군요. 사실, 플레이어가 너무나도 허접스러워서 자바스크립트로 만들어 본 것입니다.

자바스크립트 플레이어 역시 허접스러운 것은 마찬가지입니다. SasCam Webcam Server가 업데이트 한 이미지를 계속 리로드하여 마치 동영상인 것처럼 속이는 꼼수입니다. 좌측 영상은 창문 밖에 심어놓은 배달 확인용 웹캠 화면입니다. 금일 24시간 방영(?)할 예정이니 많은 시청 바랍니다(;) 마우스 클릭으로 재생할 수 있어요. 5년전에 구입한 이 웹캠은 지금까지 한번도 제대로 사용해 본 적이 없었는데, 요런 엉뚱한 용도로 쓰게 되는군요. 서버에 할당해서 저렴한 온라인 방범 솔루션 구성도 생각해 볼만 하겠습니다.

var SasVideo = Class.create();
SasVideo.prototype = {
  initialize: function(element, options) {
    this.options = Object.extend({
      serverIP  : 'http://yourwebcamserveraddress.com/', // your webcam server address
      frameRate : 2, // frameRate / seconds
      autoPlay  : false
    }, options || {});

    this.state = 'idle';
    this.frameIdx = 0;
    this.element = $(element);
    this.frame = this.element.down('img');
    this.src = 'http://' + this.options.serverIP + '/images/SaschArtCamImage.jpg';

    if (this.options.autoPlay) this.play();
    else {
      this.frame.src = this.src;
      this.frame.style.cursor = 'pointer';
      this.frame.alt = 'click to play/stop';
      Event.observe(this.frame, 'click', this.control.bindAsEventListener(this));
    }
  },
  control: function() {
    if(this.state != 'running') this.play();
    else this.state = 'stop';
  },
  play: function() {
    if (this.state == 'stop' || this.options.frameRate < 1) {
      this.state = 'idle';
      return;
    }
    if (this.state == 'idle') this.state = 'running';

    setTimeout(function() {
      var src = this.src + '?' + new Date().getTime();
      try { this.frame.src = src; } catch(e) { return; }
      if (this.frameIdx % 5 == 1) this.element.style.background = 'url(' + src + ')';
      this.frameIdx++;
      this.play(); // loop play
    }.bind(this), 1000 / this.options.frameRate);
  }
};

new SasVideo('SasVideo'); // create object

Comments

3007wfp_hc_bright.jpg

올 들어 컴퓨터 본체 한대 조립한 것 빼고는 이렇다 할 지른 물건이 없습니다. 막쓰리(Canon EOS-1D Mark III Digital SLR)가 나오기만을 학수고대하면서 총알 장전 중이었습니다만, 그 새를 참지못하고 그만 다른 물건을 질러버리고 말았습니다.
작년 부터 눈독 들이고 있던 30인치 초대형 모니터인 델(Dell)UltraSharp 3007WFP-HC입니다. 작년만 해도 시중가가 200만원을 웃돌았는데 요즘들어 140만원대로 급하락 했더군요. 아무래도 막쓰리는 물건너 갈 듯 싶습니다. 아무튼, 이녀석 적응조차 하기 힘들 정도의 괴물입니다. 지금까지 써오던 와이드 모니터인 UltraSharp 2005FPW를 피벗기능으로 세우면 높이가 비슷합니다. 픽셀 피치까지 비슷하여 서브모니터로서 궁합이 잘 맞더군요. 아래의 사진을 참고하세요.(밤에 촬영 했더니 화질이 영 않좋습니다.)

3007wfp.jpg

Dell UltraSharp 3007WFP-HC Specification

가시 크기 : 30 인치(유효 화면 30-인치)
픽셀 피치 : 0.2505mm
응답 시간(일반) : 12ms
사전 설정된 표시 영역 : 수평 - 641.28mm (25.25 인치), 수직 - 400.80mm (15.78 인치)
시야각 : 178도 (수직), 178도 (수평)
휘도(밝기) : 300cd/m2 일반
명암비 : (1000:1)
수평 스캔 주파수(kHz) : 49.31 kHz ~ 98.71 kHz (자동)
수직 스캔 주파수 주파수 kHz : 60 Hz (자동)
최적의 해상도 : 60 Hz에서 2560 x 1600
사전 설정된 디스플레이 모드 :
- VESA, 1280 x 800 - 50 kHz 수평, 60.0 Hz 수직
- VESA, 2560 x 1600 (디지털) - 99 kHz 수평, 60 Hz 수직
커넥터 유형 : HDCP, 흰색 커넥터 포함 DVI-D (듀얼 링크)
스탠드 : 기울기, 회전, 높이 조정
VESA 설치 지원 : 예(100mm)
크기(높이 x 폭 x 깊이) : 449.55mm x 559.7mm x 200mm (17.7인치 x 22인치 x 7.87인치)
무게(모니터 단일 무게) : 11.38 Kg (25.017 Ibs.)
무게(포장 포함) : 16 Kg (35.24 Ib)
AC 입력 전압 : 100 ~ 240 VAC / 50 또는 60 Hz +/-3 Hz / 1.6A (최대.)
작동(일반 최대) : 전원 끔 - 3W 이하, 스위치 끔 - 1W 이하

위 스펙에는 빠져있지만, 좌측 귀퉁이에 SM/SD/MS/MMC/CF 카드 리더기와 USB포트가 창착되어있어 디지털 미디어를 다루기에 편리합니다. 뭐니뭐니해도 가장 큰 장점은 게임물이나 영상물이 뿜어져 나올때 최고의 만족감을 느낄 수 있었습니다. 단점도 있습니다. 아쉽게도 3007WFP-HC는 2005FPW처럼 하드웨어 모니터 스위칭을 지원하지 않습니다. 2005FPW는 4가지 Input을 가지고 있고 간단한 버튼조작으로 화면 전환이 가능합니다. 즉, 여러대의 장치가 하나의 모니터에 연결되어 공유할 수 있는 것이죠. 여러대의 컴퓨터를 하나의 모니터에 연결해서 사용해 보신 분이라면 이 스위치가 얼마나 편리한지 아실 겁니다.

그리고 또 한 가지 단점이 있습니다. 3007WFP-HC는 그래픽카드의 특성을 탑니다. 2560x1600 해상도를 사용하려면 Dual Link DVI-D 포트를 지원하는 그래픽 카드를 장착해야 합니다. 요즘 출시되는 그래픽 카드들은 거의 지원하는 것으로 알고 있습니다만, 저의 경우는 nVidia GeForce 7600GS를 SLI로 묶어 사용하고 있는데요. 기종과 칩셋은 같지만 생산일에서 조금 차이가 있습니다. 이 두개의 카드중 가장 최근에 구입한 녀석에게 연결했더니 해상도는 올랐지만 화면에 잔상이 일며 픽셀이 뚜렸하지 못했습니다. 더욱이, 두개의 DVI-D 단자 중 2560x1600 해상도가 지원되는 단자는 하나 뿐이었습니다. 지원하지 않는 단자에 연결하면 모니터의 해상도가 1280 x 800으로 고정되어 버리더군요. 다행히도 먼저 구입했던 GeForce 7600GS에서는 정상으로 작동했습니다.

3007WFP-HC 모니터의 구입을 고려하는 분이라면 그래픽카드에 대한 충분한 사전조사가 필요합니다. 그래픽카드까지 추가로 구입해야하는 사고가 발생할 수 있기 때문입니다. 끝으로, 급하다는 말에 주문을 황급히 서둘러주신 Dell의 박용 상담원님께 감사드립니다. 덕분에 주문일로부터 단 4일만에 배송 받을 수 있었습니다. :)

Comments