FLV를 간단히 편집해보자 - RichFLV

FLV를 간단하게 편집하고자 할 때 쓰는 프로그램입니다.

이 프로그램은 Adobe Integrated Runtime (AIR)가 설치되어 있어야 합니다.

 

http://labs.adobe.com/downloads/air.html - AIR beta1 설치(Windows 버전, beta2는 설치하면 안된다) 

http://www.richapps.de/?p=75 - RichFLV 프로그램 설치 (RichFLV.air를 받아서 더블클릭하면 됩니다. zip일 경우 air로 확장자를 바꿈)

http://www.richapps.de/?p=82 - 드래그앤드롭과 오토업데이트 지원 패치

 

 

 

이 프로그램의 인터페이스는 상당히 단순하며, 편집에 필요한 간단한 기능들을 제공합니다.

 

1. FLV 자르기

 

 

가장 많이 쓰일 기능이라 생각되네요.

 

밑에 보시면 세로선들이 불규칙한 간격으로 분포되어있는 것을 볼 수 있습니다.

이 선들은 FLV 동영상의 keyframe(키프레임) 분포를 나타냅니다.

FLV에 키프레임에 관련된 메타데이터가 없어도 RichFLV가 알아서 키프레임정보를 읽어들이니 걱정마시길...

 

그림에서 보시다시피 노란색으로 동그라미 친 슬라이드바를 움직여서 원하는 구간을 설정하신 후

File- Save as로 저장하시면 FLV 자르기가 가능합니다.

 

직접 해보시면 아시겠지만 키프레임이 위치한 곳만 구간 설정이 가능합니다.

재생바도 움직여보시면 키프레임이 위치한 곳에만 움직입니다.

 

참고로 Sorenson H.263계열의 코덱으로 인코딩한 영상 (ex. 곰인코더, Ultra video converter, show 등)은 키프레임 간격이 불규칙하지 않고, 아래 그림처럼 일정한 간격으로 나 있는 경우가 대부분입니다. 어떤것은 중간이 텅 비어있는 것도 있더군요.

 

 

이것만 보더라도 show계열의 인코더 프로그램이 인코딩을 얼마나 이따위로 할 수 있는지 한탄을 자아내게 합니다.

 

본래 keyframe이라는 것은 비손실된 프레임(키프레임)을 중간중간에 넣어줌으로써,

임의탐색시 탐색시간의 과도함을 방지하기 위한 것입니다.

 

화면이 크게 변하는 부분마다 들어가야 하는데 그걸 무시하고 그냥 일정한 간격으로 넣어버리니,

아무래도 임의탐색시 부하가 많이 걸릴 수 밖에 없습니다.

 

이 문제는 넘어간다 쳐도 FLV 자르기의 기준이 되는 키프레임이 저 모양이니

원하는 부분을 깔끔하게 자르는것도 쉽지 않아 보입니다.

 

 

2. 여러 형식으로 변환

 

export메뉴를 보면 여러가지 항목이 보입니다.

 

 

FLV는 Save as와 다를 바 없습니다.

 

FLV(Sound only)는 말 그대로 영상부분은 빼버리고 사운드만 남기는 방식입니다.

재생해보면 화면은 안나오고 소리만 나죠. 이런 기능을 왜 넣었는지??

 

Audio(mp3)는 mp3를 추출하여 따로 저장할 수 있습니다.

 

SWF는 말 그대로 FLV를 SWF로 변환 할 수 있는 기능입니다. (괜찮은 기능)

보니까 FLV하고 용량이 같더군요. 간단히 <Embed src...>로 링크시키는데 유용하리라 봅니다.

 

그 외 나머지는 별 필요없으니 패스~~

 

p.s 오디오와 영상을 따로 분리하는 기능은 없네요. 이럴땐 FLV Extract 유틸을 쓰시면 됩니다.

 

 

3. 사운드 대체하기

 

Import->mp3로 FLV에 음성(mp3)을 교체하거나 자신이 원하는 부분에 따로 mp3데이터를 삽입할 수 있습니다.

 

 

mp3를 불러오면 밑에 파란바가 생기는데, 처음부분을 왼쪽에서 오른쪽으로 쭉 땡길 수 있습니다.

 

use Mp3 as soundtrack에 체크해야 mp3 삽입이 가능하며,

keep Old sound에 체크해야 위 그림처럼 기존의 사운드(노란색 친 부분)을 보존할 수 있습니다.

 

mp3를 떼어내서 gain(음량조절)후 다시 합쳐주는 용도로도 상당히 유용합니다.

 

 

4. 기타

 

그밖에 큐포인트 삽입, 메타데이터 정보확인, 키프레임 분포도등을 알 수 있습니다.

FLV 자르기에서 하나 더 추가할 사항이 있는데, FLV영상을 불러온 후 메타데이터 중에서 CanSeekToEnd항목을 보십시오.

 

 

lasttimestamp와 lastkeyframetimestamp값이 일치할때 true로 표시합니다.

이게 무슨 말이냐면 FLV의 마지막 프레임이 키프레임이냐 아니냐의 여부입니다.

 

결론은 이 값이 false일 경우 FLV의 끝부분을 추출할 수 없다는 이야기입니다.

 

                              

<CanSeekToEnd = true>                          <CanSeekToEnd = false> 

 

그림에서 보다시피 true는 FLV의 맨 끝에도 키프레임이 있는 반면 false는 없습니다.

그래서 false는 FLV 맨 끝부분을 추출할 수가 없습니다. 슬라이드바가 맨 끝을 갈 수가 없죠.

 

On2 Flix Pro로 인코딩한 영상은 항상 <CanSeekToEnd = true>라서 끝부분을 추출할 수 있습니다.

 

반면 Sorenson H.263계열의 코덱으로 인코딩한 영상들은 대부분이 키프레임 분포가 정상적이지 못하며,

<CanSeekToEnd = false>라서 FLV 끝부분을 제대로 탐지해내지도 못합니다.

 

이 문제는 FLV 재생할때도 플레이어에 따라 영향을 미치는 부분이기도 합니다. (Detect end of the FLV)

메타데이터에서 Videocodecid=2이면 Sorenson계열, 4이면 On2 VP6계열이니 코덱을 간단히 판별할 수 있습니다.

 

5.문제점

 

아직 베타라서 그런지 프로그램이 약간 불안정합니다.

로드가 안된다던가 클릭을 할 수 없다든가 등등.. 프로그램을 끄고 다시 실행하는 방법밖에 없습니다.

 

그리고 꽤 많은 메모리를 사용하므로 덩치가 큰 FLV를 불러올경우 로딩이 중간에 멈출 수 도 있습니다.

 

다음 포스트때는 FLV의 메타데이터를 다룰 예정입니다.