AnyVOD 0.2를 준비중에 있습니다.

이번 버전에서 크게 달라지는 점은 아래와 같습니다.

서버
1. mp4용 분석기 추가
2. 동영상에 알맞는 자막 찾는 기능 추가
3. 내부에서 문자열 처리를 유니코드로 전부 변경(클라이언트에서도 유니코드 파일명을 정상적으로 출력 가능)
4. network byte order에 맞게 패킷을 전송하도록 수정

클라이언트
1. 이퀄라이저 추가
2. 스펙트럼 출력 추가
3. http, rtsp등 프로토콜 열기 추가
4. 재생 반복 기능 추가(전체 반복재생, 랜덤재생, 한곡 재생 등)
5. 자막 위치 변경 기능 추가
6. 재생 스트림에 오디오가 여러개 존재할 경우 고를 수 있도록 추가
7. 자막에 여러 언어가 있을 경우 고를 수 있도록 추가
8. context menu에 단축키를 표시

별도로 추가 예정 기능
1. LRC 가사 지원
2. 외부 서버에서 가사 연동 지원
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2012/05/12 10:56 2012/05/12 10:56
너무나도 귀찮아서 미루고 미루던 AnyVOD 서버에 유니코드 적용을 완료 했다.
장장 꼬박 24간 동안 작업 끝에 서버, 클라이언트, 서버툴에 모두 적용을 마쳤다.

그 동안 서버에서 멀티바이트로 모든 문자열을 처리하다보니 요즘 가끔 보이는
일본어가 섞여있는 파일이나 기타 언어가 섞여 있는 파일을 제대로 처리 못하는게 문제였다.

그래서 대세인 UTF-8로 다 바꿔버렸다(기 보다는 윈도우에서는 UTF-8이 가장 만만하기에)

바꾸는 것 까지는 괜찮은데 하다보니 한가지 문제가 생겼다.

대략 서버에서 발생하는 이벤트를 파일을 통해 로그로 남기는데 그 중 서버에서 관리되는
동영상 및 미디어 파일의 스캔 여부를 로그로 남기면서 경로까지 남긴다.

간단하게 하기 위해서 wofstream을 사용해서 휙휙 넘겼는데 이놈이 가끔 멈춰버리는
현상이 발견되었다.

원인은 가끔 failbit가 세팅되는 문제였다.

그래서 로케일도 바꿔보고 별생쇼를 다 해봤는데 안되길래 직접 CRT 소스를 따라 들어가봤다.
그래보니 안에서 현재 코드페이지(한글 윈도우므로 949)를 이용해서 MultiByteToWideChar으로
변환을 해본 후 안되면 failbit를 설정하도록 되어있었다.

그래서 코드페이지를 바꿔보려고 별 생쇼를 다 해봤지만 찾을수 없었다.
그래서 그냥 fwprintf로 "a, ccs=UTF-8"를 줘서 저장하도록 바꿨다.


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2012/04/15 01:27 2012/04/15 01:27
요즘들어서 보험회사에서 비과세 보험 저축을 들으라고 어찌나 전화가 오는지 귀찮아 죽겠다.

하도 그래서 한번 보장 내역을 보내달라고 했다.

최저 보험금 103,200원에 70세 만기, 20년납이란다.

그래서 몇일전 보장내역 서류가 와서 받아놓고 귀찮아서 구석에 처박아두다가
오늘 한번 꼼꼼히 살펴봤다.

결론은.

이런 사기꾼들...............

일단 내용은 이렇다.

20년동안 납입하고 70세에 보험금을 수령하는 것이다.
만약에 8년이 안되서 해지했을 경우 원금을 전부 돌려받지 못한다.
그리고 만약에 공시이율이 4.0%미만으로 내려갔을 경우 최저 4.0% 공시이율을
보장해준다는 의미이다.
또한 복리이다.

얘네들이 주장하는건 이거다. 복리에 비과세.

20년 납입을 했을 경우를 해지환급표에서 확인해보니 현재 공시이율 5.2%일 경우 3,421만원이다.
70년 만기가 되었을 경우 공시이율 5.2%일 경우 9,223만윈이다.

물론 공시이율이 5.2%를 넘길 경우 넘긴 것을 적용해준다.
은행에서도 공시이율이 올라가면 금리도 당연히 올라가므로 그딴건 다 집어치우고.

만약에 은행에서 5.2%의 이율을 제공 해 주었을 경우 최악의 경우를 적용해봤다.
일반적으로 은행에서 정기적금에 복리는 안해준다. 따라서 "단리에 일반"으로 적용해봤다.

20년 만기이므로 20년으로 계산해봤다.

3,570 만원 나온다.

보험사에서 제시한 환급금액보다 정기적금이 더 많이 나온다.

그러면 70세에 만기되었을 경우를 따져보자.

20년동안 납입하고 나머지 기간동안은 납입을 안한다.
즉, 보험사에서는 납입을 안하는동안은 20년동안 쌓아둔 금액을
복리로 이자 계산해서 준다는 것이다.

본인이 20년동안 납기를 한 다음 70년 만기기 되기위해서는 21년이 더 필요하다.

따라서 은행에 20년동안 정기적금을 들고 모이는 3,570만원을 이제는
나머지 기간인 21년동안 정기예금으로 5.2%이율에 복리(정기예금은 복리가 된다)에
세금도 일반으로 지정해서 계산해봤다.

9,529만원 나온다.

보험사에서 제시하는 9,223만원보다 훨씬 더 많이 나온다.

다시한번 말하지만 은행에 적금 및 예금으로 넣었을 경우 최악인
단리, 세금일반으로 적용했을 때이다.

자.. 그러면 보험사에서 제시하는 최저 4.0%의 경우도 따져보자.
최저 4.0% 공시이율로 20년 납입 했을 경우에는 3,031만원을 준다고 한다.

그러면 3.031만원이라는 금액은 도대체 은행 이율이 몇퍼센트일때 저 정도가 될까?

계산해보면 약 2.6%일 때 가능한 금액이다.
지금 제1 금융권이 국민은행에서 판매하는 적금, 예금 중 36개월 이상으로 하면 못해도 3.8%이다.

즉, 보험사에서 공시이율 4.0%라는 말은 은행 이율로 따졌을때 2.6%이하로 내려갔을때 이득이라는 말이된다.

만약에 은행이율이 2.6%이하로 내려갈 정도로 공시이율이 내려간다면 보험사는 손해를 보게 된다.
그런데 솔직히.... 보험사가 바보도 아니고.....  손해볼 짓을 할까? 아니라고 본다.

보험사에서 말하는 공시이율 4.0%는 일어날 확률이 매우 적거나 내려가더라도 손해 안본다는 말이된다.

20년납 70세 만기라는 말에도 병맛같은데.........
이렇게 수익율이 낮은 이유는 보험사 자체의 사업비 등이 빠지기 때문이다.

비과세에 복리라는 말에 속지 말자.

세금일반에 단리보다 못하는 수익율이기 때문이다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2012/04/08 12:56 2012/04/08 12:56
정기적으로 AnyVOD 클라이언트에 사용되는 ffmpeg 라이브러리를 업데이트 하고 있다.

AnyVOD에서는 ffmpeg의 프로토콜 기능을 이용해서 커스텀화된 프로토콜을 등록하여
거기서 I/O를 에뮬레이션 하는 구조이다.

그런데 ffmpeg가 점점 시간이 가면서 프로토콜 기능을 사용자가 사용하지 못하도록
바꿔가고 있다. 그러던 중 드디어 해당 기능을 사용자가 사용 못하도록 내부적으로
감추어 버렸다.

AVIOContext를 이용하라고 하는데 내부적으로 보면 read/write는 사용자가 커스텀 I/O를
사용할 수 있도록 마련해 놓았든데 정작 open/close는 없....................

어쩌라는거지 이건...

open/close가 추가 된다는 말은 없고 있을지도 모르겠고...

목적이 buffered I/O를 권장하도록 디자인을 하는 것 같고 가능하면 추상화시키는
디자인으로 가는 것 같아서 공감은 가지만..........

왜 잘 쓰고 유용한 기능을 내부로 감춰 버린것인지 이해가 안가고 감춘것까진 좋다만 대안이 없으니 난감하다.

혹시라도 av_register_protocol2를 이용해서 커스텀 I/O를 AVIOContext를 이용해서 구현
방법을 아시는 분 있다면 도움 좀 주시면 감사하겠습니다. 굽신굽신


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2012/04/01 13:54 2012/04/01 13:54

간단한 애니 이야기

생활 : 2012/03/20 20:26
이번 분기 청춘물인 "그 여름에서 기다릴게"는 정황상 1화 남은 것 같고..
뭐 진행이야 뻔하지만 그래도 청춘물이니까!!

미래 일기는 대략 예상은 하고 있는 전개지만 끝까지 긴장을 늦출 수 없다.!!

Another도 흥미진진한 전개에 예상불능.

Last Exile은 시망.........................

알씨의 영향으로 이니셜디를 다시 처음부터 보고 있다.

4월 기대작으로는

너와 나 2기 : 남자들만 나오는 치유물.........................
여름색 기적 : 그냥 여름이 들어가서......
Fate/Zero : 무슨 말이 필요 하겠냐...
에우레카 세븐 AO(0??) : 우려먹기도 오래 우려먹지만 그래도 한번 기대를..
우주 형제 : 난 그냥 우주 들어간건 다 좋더라.
빙과 : 왠지 가볍게 볼 수 있을 것 같은 예감
산카레아 : 청춘물 같이 보이는데.. 아님 말고
액셀월드 : 다들 재미있을 거라고 하길래..
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2012/03/20 20:26 2012/03/20 20:26

october sky

생활 : 2012/03/02 00:10
1999년도에 나온 영화인데 국내 개봉이 안되어서 이제서야 접한 영화였다.

간단히 말하면 실화를 바탕으로 한 영화이며 어느 탄광 소년들의 로켓에 대한
꿈을 현실화 시킨 성장 영화이다.

영화를 보는 내내 뭉클한 감동이 물결쳤고...
다시 한번 그때로 돌아가고 싶은 생각도 들었다.

역시 꿈은 꾸는 자에게 기회가 주어지는 것이 아닌
꿈을 노력하는 자에게 기회가 주어지는 것이 맞는 말 같다.

나도 하고 싶은 것이 있었고 그것을 이루기 위해서 많은 노력을
해서 영화 주인공과 같이 엄~~청 훌륭한 사람이 되진 못했지만
그래도 나름 국내에서는 알아준다는 조그마한... 전자회사에서
열심히 코드를 짜고 있긴 하다.

지금까지 개인적으로 만들어왔던 많은 프로젝트들... 이를 완성시키기
위해 몇 주 동안 잠도 못자고 해왔던 때가 더 재미있었던 것은 사실이다.

이를 더 보완하고 싶기도 하고 새롭게 시작하고 싶은 프로젝트도 많긴한데
요즘 RC에 빠져서 원....

한때는 심각하게 자동차 공학을 공부 해보고 싶었기도 했다.
하지만 취미는 취미일 뿐.. 내가 하고 싶은 것은 따로 있기에...

아무튼 오랜만에 다시 한번 마음을 가다듬을 수 있는 기회였다.

일기 끝
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2012/03/02 00:10 2012/03/02 00:10

DCFileSystem

프로그래밍 : 2012/02/09 22:19
DCGUI 다음으로 만들 것은 DCFileSystem.

파일 시스템이라고 해서 뭐 새로운 파일 시스템을 만들건 아니고...(혹시 모르지)
리눅스의 VFS처럼 레이어 하나 만들고 그 아래로 여러 파일 시스템이
붙을 수 있는식으로 만들 예정이다.

인터넷에 찾아보니 제대로 돌아가는 라이브러리 형식의 파일시스템 라이브러리도
없는 것 같고.. 더 중요한건 C++로 만든건 안보이는 듯..

그래서 그냥 심플하게 만들어 볼 예정.

일단 인터페이스 설계 먼저 하고 지원하는 파일 시스템은..
FAT12,16,32
ext2
ISO-9660
을 지원할 예정이다.

Joliet 인가 머신가는 좀 생각 해보고..

ps. DCGUI에 추가적인 컨트롤은 언제 하지... AnyVOD 안드로이드용 클라이언트는 언제 만들지.. AnyVOD 윈도우 클라이언트에 추가 기능은 언제 하지.......
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2012/02/09 22:19 2012/02/09 22:19
Tag
초반 5분만 봐도 오네가이 티쳐하고 똑같고 말이지..
그래서 오랜만에 오네가이 티쳐를 다시 봤는데 말이지...

아............ 너무 똑같잖아.

10년이나 되서 발효되고 강산도 변했는데 말이지..

스토리는 뻔히 보이지만 그래도 뭐 고화질과 10년이나 지난 현대과학의
작화 스킬에 만족 하긴 하다.

그래도 뭔가 좀 아쉽단 말이지.........


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2012/02/08 20:09 2012/02/08 20:09

last exile은....

생활 : 2012/02/08 20:06
후반으로 가면 갈 수록 멍....................... 해지는 스토리 전개는 참으로........

첫 작품에도 후반으로 갈 수록 멍................... 해져가는 스토리와 결말이 안타까웠는데
이번에도 멍................ 해져가는 스토리는 쩝..........


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2012/02/08 20:06 2012/02/08 20:06
ffmpeg를 윈도우에서 쓰기 위해서는 소스를 직접 가져와서 컴파일을 해서 써야한다.
그런데 문제는 ffmpeg가 윈도우에서 컴파일을 하기 쉽게 구성되어있지 않은 점이다.

또한 ffmpeg 개발 팀 또한 윈도우에서 컴파일 하기 위해 가장 쉬운 방법인 visual studio를
지원하지 않으며 앞으로 지원할 계획도 없다고 4가지 없게 딱 잘라 말하고 있다.

그럼 어떻게 하면 윈도우에서 ffmpeg를 사용할 수 있느냐.....

다행이도 외국 횽아들이 미리 윈도우용으로 컴파일된 바이너리를 제공해주고 있다.
ffmpeg 공식사이트에서도 윈도우용 바이너리를 구하려면 아래 사이트로 가라고 하고 있다.


여기가면 윈도우용으로 빌드된 바이너리를 구할 수 있으며 어떤 라이브러리들이 추가로
포함되어있는지 알 수 있다. 친절하게 64비트용까지 제공하고 있으니 참으로 감사하다.

하지만 나같이 누가 주는 떡 넙죽 받아먹기 보다는 직접 만들어보기 위한 사람들을 위해
내가 현재 사용하고 있는 ffmpeg 빌드 환경과 옵션을 공개하고자 한다.

일단 환경은 아래와 같다.

OS : Fedora 15 32bit
Cross-compiler : mingw

cygwin이니 윈도우용 mingw도 있지만 ffmpeg 자체만 컴파일 한다면 무리 없이 되긴한다.
하지만 추가적으로 외부 라이브러리를 포함해서 컴파일을 하고자 한다면 윈도우에서 컴파일이
잘 안된다.

그냥 리눅스에서 윈도우용으로 크로스컴파일 하기를 추천한다.

리눅스를 깔 컴퓨터가 없다고? 요즘 vmware와 같은 가상화 솔루션이 많다.
어둠의 경로로도 많이 있으니 재주껏 설치하면 편하게 할 수 있다.

리눅스를 설치 했으면 크로스컴파일을 위한 mingw32를 설치해야한다. yum이나 apt로
재주껏 설치하면 된다.

아래는 ffmpeg와 기타 외부 라이브러리 컴파일 방법이다.

common
./configure --enable-static --disable-shared --host=i686-pc-mingw32 --prefix=/usr/i686-pc-mingw32/sys-root/mingw

frei0r
./configure --prefix=/usr/i686-pc-mingw32/sys-root/mingw

bzip2
make AR=i686-pc-mingw32-ar CC=i686-pc-mingw32-gcc RANLIB=i686-pc-mingw32-ranlib
make PREFIX=/usr/i686-pc-mingw32/sys-root/mingw install

rtmp
make SYS=mingw SHARED= CROSS_COMPILE=i686-pc-mingw32- INC=-I/usr/i686-pc-mingw32/sys-root/mingw/include
make prefix=/usr/i686-pc-mingw32/sys-root/mingw install
설치후 에러메시지는 무시

openssl
export AR=i686-pc-mingw32-ar; export CC=i686-pc-mingw32-gcc; export SYSTEM=MINGW32; ./config --prefix=/usr/i686-pc-mingw32/sys-root/mingw

libvpx
CROSS=i686-pc-mingw32- ./configure --target=x86-win32-gcc --prefix=/usr/i686-pc-mingw32/sys-root/mingw

x264
./configure --enable-static --host=i686-pc-mingw32 --prefix=/usr/i686-pc-mingw32/sys-root/mingw --cross-prefix=i686-pc-mingw32-

xavs
./configure --host=i686-pc-mingw32 --prefix=/usr/i686-pc-mingw32/sys-root/mingw --cross-prefix=i686-pc-mingw32-

xvid
./configure --host=i686-pc-mingw32 --prefix=/usr/i686-pc-mingw32/sys-root/mingw
make 후 설치 된 곳에서 아래 실행
rm xvidcore.dll
mv xvidcore.a libxvidcore.a

ffmpeg
./configure --prefix=/home/chadr/ffmpeg-cross/build --enable-postproc --cpu=i686 --disable-static --enable-shared --enable-gpl --enable-version3 --enable-runtime-cpudetect --enable-memalign-hack --enable-libvo-amrwbenc --enable-libvo-aacenc --enable-avisynth --enable-frei0r --enable-bzlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib --enable-libcelt --enable-cross-compile --cross-prefix=i686-pc-mingw32- --target-os=mingw32 --arch=x86 --extra-cflags="-DENOTSUP=95 -DENOBUFS=105 -I/usr/i686-pc-mingw32/sys-root/mingw/include -I/usr/i686-pc-mingw32/sys-root/mingw/include/freetype2 -I/usr/i686-pc-mingw32/sys-root/mingw/include/SDL" --extra-ldflags="-L/usr/i686-pc-mingw32/sys-root/mingw/lib" --extra-libs="-lssl -lcrypto -lws2_32 -lwinmm -lgdi32 -lorc-0.4 -lSDL -lpthread" --pkg-config=pkg-config


위에 --prefix=/usr/i686-pc-mingw32/sys-root/mingw 와 같이 설치 위치는 리눅스 배포판마다
다를 수 있으므로 본인이 스스로 확인 해야한다.

common이라고 써진 것은 위에 언급된 라이브러리가 아닌 라이브러리의 경우 common에 명시된
옵션으로 컴파일 하면 된다.

ffmpeg의 prefix 또한 자신이 설치하고자 한 위치로 적절히 변경 시켜줘야한다.

이 글을 쓴 시각까지 ffmpeg의 최신 버전은 위 옵션으로 전부다 컴파일이 성공했으니 참고바란다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기(0) 이올린에 추천하기(0)
2011/11/05 14:01 2011/11/05 14:01