'working diary'에 해당되는 글 47건

  1. 2013.01.28 #20130128-01 :: FFMpeg :: 튜터리얼 2
  2. 2013.01.14 #20130114-02 :: SecureCRT :: 한글 깨짐 문제
  3. 2013.01.14 #20130114-01 :: Ubuntu 12.04 LTS :: Atheros AR8161/8165 드라이버 설치
  4. 2012.03.28 #20120328-02 :: iOS :: CATransition 효과
  5. 2012.03.28 #20120328-01 :: iOS :: 화면전환 딜레이 문제
  6. 2012.03.26 #20120326-02 :: Debian Linux :: MySQL 외부 접근 설정
  7. 2012.03.26 #20120326-01 :: Mac OS X Lion :: MacPorts 업데이트 및 mysql-python 설치
  8. 2012.01.10 Subversion Locale Warning
  9. 2011.04.22 #20110422-04 :: Debian Linux :: sudo 명령이 안될 때...
  10. 2011.04.22 #20110422-02 :: Debian Linux :: mysql 설치

#20130128-01 :: FFMpeg :: 튜터리얼

현재 LG전자에서 OJT의 일환으로 썸네일 추출 프로그램을 만들고 있습니다.

정식 업무가 아닌 OJT 프로젝트이다 보니 시간도 많지 않고 하지만,

후일 UPnP/DLNA 서버에 쓰일 수도 있어 조금 신경써서 만들고 있습니다.


요즘 오픈소스가 워낙 좋아서 오늘까지 3~4일 정도 작업한 결과 

생각보다 빠르게 마무리가 되어 가네요.


원래 계획은 이미지는 OpenCV로 처리하고

동영상 프리뷰만 FFMpeg로 처리하려고 했는데,

OpenCV 작업을 마치고 FFMpeg를 보고 있자니

FFMpeg만으로 이미지 처리까지 모두 가능하겠다 싶어 시도해 보았는데

너무나도 쉽게 성공 ㅋ

이제 OpenCV 코드는 폐기하고 FFMpeg로 모두 처리합니다.


여기에는 작업하며 참고했던 튜터리얼을 소개합니다.

총 9개의 스텝으로 나뉘어져서

FFMpeg로 간단한 동영상 플레이어를 만드는 방법을 소개하고 있습니다.


FFMpeg 샘플들을 찾아보면 모양이 거의 다 비슷비슷 한데,

이 튜터리얼을 기본으로 파생한 것들이더군요.

물론, 버전이 낮아서 최신 1.1.1 버전에서는 똑같은 코드가 먹히지 않습니다.

하지만, 프로그래밍 내공이 조금만 있다면

수정된 부분들을 찾아 정상 동작하도록 하는 것이 어렵지는 않을 것 같습니다.


이번 작업을 하면서 느낀 점은

왜 세간에 FFMpeg 개발이 극악이라고 하는지 깨닫게 됐다는거?

어라라~ 위에서는 쉽다고 해놓고 이제 와서 말바꾸기?

물론, 직접 해야하는 일에 비해 FFMpeg의 완성도는 너무 훌륭합니다만,

문서나 샘플이 매우 빈약하다는 개발자들의 평이 사실이었음을 알게 되었습니다.

이래서는 초보자들은 접근하기가 쉽지 않겠더군요.


틈틈히 시간을 내서

위 튜토리얼을 따라 FFMpeg 1.1.1 버전에 맞춰 샘플을 작성해 봐야겠습니다.

뭐, 여유가 있다면 작업 내용을 포스팅해도 좋겠다고 생각합니다.

#20130114-02 :: SecureCRT :: 한글 깨짐 문제

오늘 윈도우에 설치한 SecureCRT에서 Ubuntu에 ssh로 접속하여 사용하던 중

한글이 깨지는 것을 발견하였습니다.


설정된 폰트가 한글을 지원하지 않기 때문이라고 합니다.


서버에 접속한 후 Options → Session Options 창을 연 뒤에

좌측 트리에서 Terminal → Appearance 를 선택합니다.

우측 옵션들에서 폰트를 굴림체로 변경하고,

Character encoding을 utf-8로 설정합니다.


[출처] 이곳에 스크린샷과 함께 친절하게 설명되어 있습니다.

#20130114-01 :: Ubuntu 12.04 LTS :: Atheros AR8161/8165 드라이버 설치

현재 회사에서 사용하는 리눅스 노트북에서 우분투를 설치하면,

유선 네트워크 드라이버가 자동으로 설치되지 않습니다.

네트워크 디바이스는 Atheros AR8161/8165 PCI-E Gigabit Ethernet Controller 입니다.

그래서 터미널 창에서 아래와 같이 명령을 입력하여 설치하였습니다.


$ sudo apt-get install linux-backports-modules-cw-3.4-precise-generic

$ sudo modprobe alx


[출처]

#20120328-02 :: iOS :: CATransition 효과

화면 전환시 CATransition을 사용 했을 때의 효과

책(터칭! 아폰 SDK 3.0)이나 애플 문서의 설명만으로는 정확히 이해되지 않아 정리함


kCATransitionFade: 기존 화면이 서서히 사라지고 새 화면이 서서히 나타남

kCATransitionMoveIn: 기존 화면이 있는 상태에서 새 화면이 밀고 들어와 덮는 효과

kCATransitionPush: 기존 화면이 밀려나면서 새 화면이 밀고 들어오는 효과

kCATransitionReveal: 기존 화면이 밀려나가면 그 밑에 새 화면이 있는 효과

#20120328-01 :: iOS :: 화면전환 딜레이 문제

iOS Framework를 개발 중 화면 전환시 화면 교체 딜레이가 발생

각 페이지 전환 시 이전 화면이 사라지고 다음 화면이 사라지기 전에 흰색 화면이 보임

상태 확인 중 비디오 객체가 있는 곳에서 발생하는 것을 확인

페이지 전환 전에 MPMoviePlayerController의 뷰를 부모에서부터 제거해야 함

메모리 할당 및 해제와 상관 없이 비디오 뷰가 있으면 화면 지연이 일어나는 것을 확인

#20120326-02 :: Debian Linux :: MySQL 외부 접근 설정

mysql-python 설치를 마치고 
개발환경의 DB 정보를 변경했으나 접속 실패

MySQL의 설정에 들어가서 
bind-address = 127.0.0.1 항목에 주석 처리

# vi /etc/mysql/my.cnf 
>> # bind-address = 127.0.0.1
# /etc/init.d/mysql restart 


위와 같이 한 후 서버를 재실행하였으나 실패
그러나 에러 메세지는 바뀌었음

MySQL 콘솔에 접속하여 root 계정이 외부에서 접근 가능하도록 user 정보를 수정한다.

# mysql -u root -p
Enter password: 
mysql> show databases;
mysql> use mysql;
mysql> show tables;
mysql> select host, user in user;
mysql> update user set host='%' where user='root' and host='127.0.0.1'; 
mysql> exit;
# /etc/init.d/mysql restart 


#20120326-01 :: Mac OS X Lion :: MacPorts 업데이트 및 mysql-python 설치


Django로 제품을 개발하던 중
릴리즈 된 서비스의 DB(MySQL)에 연결해야 할 필요성이 있어 DB 설정을 변경.

그런데 mysql-python이 설치되어 있지 않아 에러 발생.

[여기]에서 mysql-python 1.2.3의 소스를 받아 압축을 해제 후 폴더로 이동 및 설치 시도
그러나 MySQL이 로컬에 설치되어 있지 않으면 설치 할 수 없는 것으로 보임

$ cd ~/Download/MySQL-python-1.2.3

$ sudo python setup.py build


MacPorts를 이용해 python-mysqldb를 설치를 시도
그러나 Xcode 관련 에러 발생

$ sudo port install mysql5 +server


MacPorts 업데이트 및 패키지 업그레이드를 시도
업데이트 중 Xcode 경고 발생

$ sudo port selfupdate

$ sudo port upgrade outdated 


아래와 같이 MySQL을 설치하려 했으나 에러 발생

$ sudo port install mysql5 +server


경고 메세지의 안내에 따라 다음과 같은 커맨드 실행

$ sudo xcode-select -switch /Applications/Xcode.app/


다시 MySQL 설치 시도 및 성공

$ sudo port install mysql5 +server

[2015.08.10 수정]

sudo port install mysql56-server


MacPorts 업데이트 및 패키지 업그레이드 재시도

$ sudo port selfupdate

$ sudo port upgrade outdated 


setup_posix.py 파일을 수정
mysql_config.path = "mysql_config" 부분을 찾아
mysql_config.path = "/opt/local/lib/mysql5/bin/mysql_config"로 변경
mysql_config.path = "/opt/local/lib/mysql56/bin/mysql_config"로 변경 [2015.08.10 수정]

$ vi setup_posix.py

>> mysql_config.path 수정

$ sudo python setup.py build

$ sudo python setup.py install 


다음과 같이 설치 확인
아래와 화면이 동일하다면 성공

$ python

>>> import MySQLdb 

>>> MySQLdb

<module 'MySQLdb' from 'MySQLdb/__init__.py'>

>>> 



Subversion Locale Warning


프로젝트를 서버에 등록하기 위해 작업을 하던 중
서브버전 명령에서 전에는 보지 못했던 다음과 같은 경고문구들을 보았다.

# svn

svn: warning: cannot set LC_CTYPE locale

svn: warning: environment variable LANG is ko_KR.UTF-8

svn: warning: please check that your locale name is correct 

 
Locale과 관련된 문제라고 하며 locale -a를 권하는 곳이 있어 해본 결과
다음과 같은 출력을 볼 수 있었는데, 
그래도 원인이나 해결책은 모르겠고...

# locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory

locale: Cannot set LC_MESSAGES to default locale: No such file or directory

locale: Cannot set LC_COLLATE to default locale: No such file or directory

 
결국 이곳을 보고 도움을 받았다. 
다음과 같이 환경변수를 지정하면 경고가 사라지는 것을 볼 수 있다.

# export LC_ALL=C

 

#20110422-04 :: Debian Linux :: sudo 명령이 안될 때...


[참고][블로그] http://blog.naver.com/PostView.nhn?blogId=1to0&logNo=110024637646


계속 root 권한으로 작업을 하다가

일반 계정으로 sudo 를 이용해 작업을 하려고 하니 다음과 같은 메세지가 출력된다.

[account] is not in the sudoers file.  This incident will be reported.

루트권한으로 다음의 명령을 입력한다.

# visudo

 root    ALL=(ALL) ALL 밑에 계정 아이디를 넣고 똑같이 적어준다.

#20110422-02 :: Debian Linux :: mysql 설치

아래의 커맨드로 mysql을 설치한다.

# apt-get install mysql-server mysql-client

debian에서 설치하니 설치 도중 root 패스워드를 입력하도록 물어봐 준다.

이전과 같이 설치 후 mysqladmin 명령을 통해 root 패스워드를 설정하지 않아도 된다.