본문 바로가기

2.분석 및 설계

[Flash] Related of Flash Movie

Flash Movie 이야기

저자: 박재성(ospace114@empal.com, http://discount77.com/blog/ospace/)
2007.05.21

최근 UCC가 대두가 되면서 동영상 UCC에대한 부분이 심심하지 않게 많이 보게 된다. 이로 인해 관련 개발 분야도 많은 이슈가 발생하고 있다.
특히 동영상 환경을 Flash와 WMP의 양대 산맥으로 구분되면, Flash 진영이 한발 빠른 진행을 하고 있다. WMP인 경우는 환경이 윈도우즈라는 제한된 영역을 가지고 있으며, ActiveX을 사용한 개발로 최근 Vista 이슈로 인해 지지를 많이 받지 못하는 상황이다. 고화질과 DRM이 지원된다는 상황에서만 유리할 뿐 더 이상 이점이 없다.
고화질인 경우는 Flash도 못지 않게 좋기 때문에 장점으로 내세울수는 없다. 단지 고화질인 경우는 상용 서버스로 하는 경우가 많고, 그렇기에 DRM이 필요하고 그렇기에 WMP을 사용하게 된다는 것 뿐이다. Flash은 단점은 있다. 다양한 편집 기능을 제공하기 힘들고 비싼 SDK를 구매해야 한다는 문제점이 있다.
On2에서 Flash Video SDK를 제공하는데 가격이 8천만원대를 육박한다. 쉽게 구매할 수 있는 가격이 아니다. 그에 비해 WMP인 경우 DirectShow에 의한 편집 기능과 다양한 포멧 지원 및 효과 등을 공짜로 제공해 저렴하게 개발할 수 있다는 장점이 있다.

1123531744838491_vp7_white_paper.pdf


어찌됐든 UCC로 인해 Flash가 대두 되는 환경에서 Flash Move인 FLV에 대해서 간단하게 알아보자.
FLV은 Flash Move로서 Flash용 동영상을 저장하기 위한 포멧이다.

FLV format.pdf


위의 파일은 FLV에 대한 포멧을 간략하게 설명한 파일이다.
On2에서는 VP codec을 개인용으로 무료로 배포하고 있다.

on2_vp7_personal_edition.exe

vp6_vfw_codec.exe

각각 VP version 7과 version 6.1이다. 이를 이용해 FLV의 비디오 인코딩을 할 수 있다. 이는 FLV 포멧으로 패키징 된 것이 아니라 비디오만 인코딩 한 것이기에 이를 이용해서 FLV 파일을 생성할 수 없다.
On2에서 DirectShow용 filter을 제공하지만 SDK를 구매해야 사용할 수 있는 것이기에 테스트용으로는 불가능하다. 시험용 버전도 제공되지 않고 개발 문서도 없기에 당장 시험하기에는 부적합하다.

On2외에 Turbin Video Engine SDK가 있다. 이는 시험 버전이 있기에 다운받을 수 있다. 그리고 DirectShow용 설정을 할 수 있다는 내용이 있어서 다운받아서 설치해 보았다.

TVE3SDK-Evaluation.exe

그러나, 예제나 내용 어디에서도 DirectShow용 filter는 없었다. 그리고 핀 제어도 불가능하다. 평가판이라서 그런 건지는 모르지만 이것으로도 DirectShow에서 FLV 제작은 불가능하다.
이는 파일 기반의 인코딩을 제공하기에 서버나 클라이언트 측에서 encoder 정도 제작하기에는 적합하다. 이런 형태로 Linux 기반에서 encoder 서비스 제작에 대한 재미있는 글이 아래에 있으니 참고하길 바란다.

Install FLV at linux.pdf



결국 FLV을 생성할 수 있는 것이 필요하기에 writer filter을 찾기 시작했다. 그랬더니 VHFLVWriter가 발견되었다. VHFLV Writer로서 DirectShow filter로 등록되었고 Graph Editor에서 시험할 수 있었다.

VHFLVWriter.zip

사용자 삽입 이미지


해당도나 프래임율 등을 조절하는 것은 아직 모르지만 현재 설정으로 아쉽지만 FLV를 재생할 수 있었다.
이를 이용해서 FLV을 만들어서 Flash Editor에서 불러와서 실행하면 이상없이 재생된다. 이제 이를 이용해서 DirectShow에서도 FLV 저작도구를 만들 수 있다.

VHRecoder_inst.exe


반응형

'2.분석 및 설계' 카테고리의 다른 글

함수 호출과정 분석  (0) 2011.01.12
코드 문서화  (0) 2011.01.07
설치 패키지 작성시 고려사항  (0) 2009.07.31
프로그램 버전 얻기  (0) 2009.04.13
OOD(객체지향 개발)의 원칙  (0) 2006.11.13