웹캠을 이용해서 스트리밍 서비스 하기... VAIO P MOTION EYE

 VAIO P에 우분투를 설치하고 제대로 테스트도 안 해보고 웹캠(MOTION EYE)이 동작하지 않는다고 생각했는데, 혹시나 하는 생각에 테스트를 해보니 아무런 설정 없이 video4linux2(/dev/video0)로 인식이 되었다. 그래서 이 웹캠을 가지고 테스트 겸 뭔가 할 수 없을까 하다가, 웹캠에 찍히는 화면을 실시간으로 인터넷으로 볼 수 있으면 좋겠다는 생각이 들었다.

 그래서 찾아보니 ffmpeg와 ffserver를 이용하면 비교적 간단하게 스트리밍 서비스가 가능해 보여서 시도해 보았다.

① 우선 ffmpeg를 설치한다.
$ sudo apt-get install ffmpeg

② ffserver.conf 파일을 만든다. /etc/ffserver.conf 파일 대신에 아래의 파일을 쓴다.
    첨부파일 : ffserver.conf
Port 8090
# bind to all IPs aliased or not
BindAddress 0.0.0.0
# max number of simultaneous clients
MaxClients 1000
# max bandwidth per-client (kb/s)
MaxBandwidth 10000
# Suppress that if you want to launch ffserver as a daemon.
NoDaemon

<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 100M
</Feed>


<Stream test.swf>
Feed feed1.ffm
Format swf
VideoCodec flv
VideoFrameRate 15
VideoBufferSize 80000
VideoBitRate 100
VideoQMin 1
VideoQMax 5
VideoSize 640x480
PreRoll 0
Noaudio
</Stream>
※ 위의 파일은 flv Codec의 swf 파일만을 서비스하는 설정파일이다.

③ ffserver를 실행한다. 설정파일은 현재 디렉토리에 있다고 가정한다.
$ ffserver -f ./ffserver.conf

④ ffmpeg를 실행하면, 웹캠이 동작한다.
$ ffmpeg -r 15 -s 640x480 -f video4linux2 -i /dev/video0 http://localhost:8090/feed1.ffm
※ -r 15 : 초당 15프레임, -s 640x480 : 640x480 해상도, -f video4linux2 : v4l2 포멧, -i /dev/video0 : 웹캠의 주소
   http://localhost:8090/feed1.ffm : 영상을 저장할 주소

⑤ 다른 컴퓨터의 웹브라우저에서 스트리밍 서버의 주소를 치면 플래시(swf)로 실시간 영상을 볼 수 있다.
http://스트리밍서버(VAIO P)주소:8090/test.swf

아래 스크린샷은 VAIO P에 접속한 다른 컴퓨터에서 찍은 스크린샷이다. 좌측 웹 브라우저에 보이는 화면이 실시간으로 VAIO P의 웹캠(MOTION EYE)이 찍고 있는 영상이다.



MOTION EYE로 찍은 의미없는 사진

by sakuragi | 2009/09/07 01:00 | :: C space :: 컴퓨터 | 트랙백 | 덧글(4)

이가 없으면 잇몸으로... VAIO P FN Shortcut Key

 앞의 Ubuntu 9.04 on SONY VAIO P 관련 포스팅을 하면서 동작하지 않는 기능 중에 화면 밝기가 FN키로 동작하지 않는다고 했다. 근복적으로 해결할 수 있는 방법은 없다. OS상에서 FN키 조합을 아예 인식하지 못하기 때문이다. 하지만 이가 없으면 잇몸으로... 라는 말이 있듯이 FN키 조합 대신에 Windows 키와의 조합으로 이 문제를 해결했다.

 아래 내용은 VAIO P가 아닌 다른 노트북에서도 그대로 사용할 수 있으리라고 생각된다.

① 아래의 내용으로 /usr/local/bin/zbright 파일을 만들거나 첨부파일을 받아서 /usr/local/bin에 넣는다.
    첨부파일 : zbright
#!/usr/bin/env bash
#
# syntax:
# 'sudo zbright +N' increments screen brightness by N percent (N=0-100)
# 'sudo zbright -N' decrements screen brightness by N percent
# 'sudo zbright N'  sets screen brightness to N percent
# 'sudo zbright'    w/o any args reports current brightness
#
# note: must be run as sudo
#
# 2008-12-24   Ryan M. Eustice   eustice@umich.edu

# probe current brightness
po=`cat /sys/class/backlight/psblvds/brightness` # percent (0-100)
#echo "$ho $do $po"

if [ $1 ]; then
    if [ "$(echo $1 | tr -d '\-')" != "$1" ]; then
        delta=$(echo $1 | tr -d '\-');
        p=$((po-delta));
    elif [ "$(echo $1 | tr -d '\+')" != "$1" ]; then
        delta=$(echo $1 | tr -d '\+');
        p=$((po+delta));
    else
        p=$1;
    fi

    if [ $p -ge 100 ]; then
        p=100;
    fi
    if [ $p -le 20 ]; then
        p=20;
    fi

    for i in /sys/class/backlight/*/brightness; do echo $p > $i; done

else
    echo "$po";
fi
※ 원본 zbright 파일이 정상동작하지 않아 적절히 수정하였다.

② 상단 메뉴의 '시스템 - 기본설정 - 키보드 바로가기'로 가서 LCD 밝기 밝게와 어둡게를 추가한다.

LCD밝기 10% 밝게는
$ sudo zbright +10

LCD밝기 10% 어둡게는
$ sudo zbright -10

③ zbright 사용시 sudo가 필요한데, 암호를 묻지 않도록 /etc/sudoers파일을 수정한다.
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults    env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL

# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
# %sudo ALL=NOPASSWD: ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
%admin ALL=NOPASSWD : /usr/local/bin/zbright

④ '키보드 바로가기'에서는 Windows 키를 조합키로 사용 할 수 없으므로 gconf-editor를 실행해서 수정해준다.
     위치는 / - desktop - keybindings - custom0와 / - desktop - keybindings - custom1이다

binding 부분을 직접 수정해 주면 된다.
VAIO P의 본래 LCD 밝기를 밝게 하는 키은 FN+F6이기에 Windows+F6 버튼으로 지정해 주었다.
<Mod4>F6

LCD 밝기를 어둡게 하는 키는 FN+F5이기에 Windows+F5 버튼으로 지정해 주었다.
<Mod4>F5

⑤ 이렇게 지정해주고 Window+F5, Window+F6 키를 누르면 LCD 밝기가 조절된다.


의미 없는 스크린샷

by sakuragi | 2009/09/06 20:32 | :: C space :: 컴퓨터 | 트랙백 | 덧글(2)

우분투 설치... Ubuntu 9.04 on SONY VAIO P


 주변에서 왜 이러냐고들 하시지만, 꿋꿋하게 VAIO P에 우분투를 설치했다. 설치한 감상은 속도면에서 전혀 만족스럽지 못하다. 현재 Gnome에 Compiz까지 돌리고 있기 때문에 당연한 결과일 수도 있지만, 처음으로 Atom 프로세서와 GMA500을 사용하는 입장에서 CPU와 GPU 모두 기대 이하의 성능이다.

 어찌되었던 간에 이미 Windows 영역은 다 삭제하고 Only Ubuntu를 설치했기에 되돌릴 수도 없다. 그래서 VAIO P에 우분투를 설치하면서 격은 몇가지 사항을 정리해 두려고 한다.

 우선 가장 큰 난관은 GMA500 설정이였다. VAIO P의 1600x768이라는 엽기적인 해상도를 설정하기 위해서 psb 드라이버 설정이 필요하다.

① /etc/apt/sources.list 파일에 아래의 저장소를 추가해 준다.
deb http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu jaunty main

② 저장소를 update하고 필요한 패키지를 설치한다.
$ sudo apt-get update
$ sudo apt-get install psb-modules xserver-xorg-video-psb

③ /etc/modules에 psb를 추가한다
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

lp
psb

④ /boot/grub/menu.lst 의 커널 부분을 설정해 준다.
title        Ubuntu 9.04, kernel 2.6.28-11-generic
uuid        6131c711-bf51-4e4a-ac0a-94df0a6880ef
kernel        /boot/vmlinuz-2.6.28-11-generic root=UUID=6131c711-bf51-4e4a-ac0a-94df0a6880ef ro quiet nosplash mem=1792mb
initrd        /boot/initrd.img-2.6.28-11-generic
quiet
※ nosplash를 하는 이유는 psb 모듈이 올라오면서 splash화면이 깨지기 때문이다.
    mem=1792mb는 나머지 256mb를 비디오 메모리로 쓰기 위함이다.

⑤ 재부팅 후 로그인 화면(GDM)이 1600x768 해상도에 맞게 뜬다면 성공이다.
※ 현재 우분투 최신 커널은 2.6.28-15 이지만, 내 경우 2.6.28-15에서 psb-kernel-source를 실행할 경우 X를 띄울 수 없었다.
    그래서 현재 나는 2.6.28-11 버전 커널을 사용 중이다.

⑥ 재부팅 후, 해상도가 제대로 떳다면 compiz를 실행하기 위해 /usr/bin/compiz를 열어서 62번 째 줄의 WHITELIST에 psb를 추가해 준다.
# Driver whitelist
WHITELIST="psb nvidia intel ati radeon i810 fglrx"

⑦ 이대로 X를 띄우면 자주 먹통(freeze) 현상이 생긴다. 이를 방지하기 위해 /etc/X11/xorg.conf를 수정해 준다.
Section "Device"
    Identifier  "Configured Video Device"
    Option      "AccelMethod" "EXA"
    Option      "DRI" "on"
    Option      "MigrationHeuristic" "greedy"
EndSection

⑧ 이제 X 를 재시작하는 것으로 compiz가 적용된 환경이 사용가능해 진다.
※ 기본적으로 compiz의 텍스쳐 필터 품질이 "좋음"으로 되어 있기에 좀 더 빠른 속도를 위해서는 compizconfig-settings-manager 패키지를 설치해서 세부적인 compiz 설정을 해줄 필요가 있다.

 두번째 문제로는 사운드와 관련 된 것으로 이어폰 단자에 이어폰을 꽂아도 스피커로 소리가 나오는 현상이 있었다. 다음의 방법은 SONY VAIO P에만 해당하는 방법으로 다른 회사 제품은 참고자료에 있는 URL을 참고해서 설정해야 한다.

① /etc/modprobe.d/alsa-base.conf 파일을 열어서 맨 마지막 줄에 다음 내용을 추가해 준다.
options snd-hda-intel model=sony-assamd

② 다음 명령으로 alsa를 재시작한다. 잘 안되면 reboot 해 본다.
$ sudo alsa reload

③ 이제 이어폰 단자에 이어폰을 꽂으면 스피커에서 소리가 나지 않을 것이다.

 세번째로는 SSD Lifetime을 늘리기 위한 설정이다.

① /etc/fstab 을 열어서 아래와 한줄을 추가한다.
tmpfs        /tmp        tmpfs    defaults    0    0

② /etc/sysctl.conf 파일을 열어서 아래 두줄을 추가한다.
vm.dirty_writeback_centisecs = 1500
vm.swappiness=0

그리고 현재까지 우분투 설치 후, 동작하지 않는 기능이 몇가지 있다.
① 화면 밝기를 조절하는 FN키가 동작하지 않는다.
② 창 정렬 키와 인스턴트 온 키가 동작하지 않는다.
내장 웹캠(MOTION EYE)가 동작하지 않는다. 나의 착각이였다. 아무 설정 없이 잘 동작한다.

위의 문제 말고는 우분투 설치 시 크게 신경 쓸 부분은 없는 듯 하다.

by sakuragi | 2009/09/06 17:20 | :: C space :: 컴퓨터 | 트랙백(1) | 덧글(10)

새로운 삽질 거리... SONY VAIO P

점심시간에 받아들고 박스 개봉


나머지 사진들 보기

by sakuragi | 2009/09/04 13:55 | :: C space :: 컴퓨터 | 트랙백 | 덧글(4)

◀ 이전 페이지          다음 페이지 ▶



:+: sakuragi's Recently Tracks :+: