귀찮은 인코더들이여 안녕

2 min read

PDA에서 영화보기용 및 다용도로 사용하던 바닥.

그리고 가끔 홈피에 동영상을 올리기위해 FLV 인코딩이 필요해서 Riva Encoder를 사용하다가 개념없는 UI와 내 데스크탑 Win2003에서 껍데기 실행이 안되어 ffmpeg.exe를 사용하여 FLV 인코딩을 했었다.

그런데 윈도우의 mencoder 프론트엔드는 flv 옵션을 지원하지 않고 리바에 딸려나온 ffmpeg.exe는 Xacti HD1A의 동영상을 디코드 할 줄 모른다. 2개 다 쓰기에도 귀찮았고 마침 집에 CPU 쳐남아도는 -_- 리눅스(FC6) 박스가 한 대 있었기에 바닥의 코어 mencoder를 열심히 빌드했다.

중간에 libmp3lame 잡히지 않아 삽질 좀 했고 이리저리 삽질해서 CPU 쳐남는 장비를 인코딩 장비로 적극 활용할 준비가 끝났다.

오우~ Sanyo Xacti HD1A으로 찍은 HD급 동영상도 PDA용으로 인코딩이 잘 되고 FLV으로 변환함에도 아무런 문제가 없다.

주중에 dnd로 원격 인코딩하는 툴 만들기 전에 여기다가 붙여놓고 당분간 긁어다 쓸 계획으로 포스트를 남긴다.

[자막 포함해서 PDA용으로 옮길 때 쓰자]

/usr/local/bin/mencoder test.mp4 -o test.avi \
-oac mp3lame -lameopts vbr=3 -lameopts br=128 \
-lameopts mode=1 -lameopts aq=7 \
-vf-add scale=xxx:xxx \
-ovc lavc -lavcopts vcodec=mpeg4 -lavcopts vbitrate=xxxx -ffourcc DIVX \
-font "/home/rath/fonts/gulim.ttc" -sub "test.smi" -utf8 \
-subpos 95 -subfont-text-scale 4 -subfont-blur 2

**[FLV로 변환할 때 쓰자]**
/usr/local/bin/mencoder test.mp4 -o test.flv **-of lavf** \
-oac mp3lame -lameopts abr:br=128 -srate 44100 \
-vf-add scale=xxx:xxx \
-ovc lavc -lavcopts vcodec=flv:vbitrate=xxx:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 \
-lavfopts **i_certify_that_my_video_stream_does_not_use_b_frames**

FLV 인코딩 할 때 -of lavf 가 없으면 Flash로 재생이 안되고 -of lavf 옵션 준 다음에 
i_certify_that_my_video_stream_does_not_use_b_frames 옵션을 안주면 

** MUXER_LAVF *****************************************************************
If you wish to use libavformat muxing, you must ensure that your video stream
does not contain B frames (out of order decoding) and specify:
    -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames
on the command line.
REMEMBER: MEncoder's libavformat muxing is presently broken and will generate
INCORRECT files in the presence of B frames. Moreover, due to bugs MPlayer
will play these INCORRECT files as if nothing were wrong!
*******************************************************************************

이렇게 겁을 준다. -_- 컴맹한테 내 동영상이 B Frame 포함인지 아닌지 어떻게 구분하란 거야 :@ 암튼 몇개 테스트 해보니 잘 돌아갔으므로; 그냥 옵션 쓰기로 한다.

껍데기 입힌 것을 쓰면 유연성이 떨어져서 불편했었는데, 이리저리 옵션 공부해서 한번 익혀두니 삶이 무지무지 편해질 것 같다.

GUI 즐! CLI 만세!

Comments

6 thoughts shared

01

서문교

오늘 점심 스케쥴....황장호 12:30분 이었는데 흥

02
R

rath

내일은 목에 칼이 들어와도 간닷! 쏘리 ㅡ,.ㅡ

03
R

rath

무슨 일이 있어도 가려하지만, 아직도 깨있어서 상당히 불안함 (7)

04
R

rath

동영상을 시간 기준으로 자르는 툴을 찾다가 MP4 포맷을 잘 지원하는게 없어 VirtualDub을 포기하고 mencoder를 봤다. -endpos 옵션 굿! 그런데 -ss 옵션은 안먹는다. 에러 메시지에 의하면 AVI, ASF, MPEG stream이 아닐 경우 -ss는 처리하지 못한다고 한다. 아무튼 -endpos 00:07:08 먹으니까 이렇게 AVI로 쪼갠다음 울며겨자먹기 식으로 VirtualDub으로 Start Position 짜르고 다시 FLV로 인코딩 ;;;

05

06
R

rath

ㅍ_ㅍ

Continue Reading

Discover more thoughts and insights