2013년 8월 27일 화요일

FFMpeg를 사용한 비디오 편집



[비디오파일로 부터 정보 획득]

ffmpeg -i video.avi



[비디오 파일 포멧 변환]

FFmpeg -i source_video.avi final_video.mpg
 : .avi 비디오 파일을 .mpg 파일로 변환합니다. 확장자에 따라 다양한 포멧으로 변환이 가능합니다. (예: wmv, mp4, mkv, flv, etc.)


FFmpeg -i source_video.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4
 : iPod/iPhone호환을 위한 변환 처리

   Source : source_video.avi
   Audio codec : aac
   Audio bitrate : 128kb/s
   Video codec : mpeg4
   Video bitrate : 1200kb/s
   Video size : 320px par 180px
   Generated video : final_video.mp4


FFmpeg -i video_origine.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv video_finale.flv
 : video_origine.avi 파일을 지정된 옵션으로 Flv(플래시 동영상)파일로 변환 처리


[비디오로 부터 특정 구간 잘라내기]

ffmpeg -i sourcemovie.avi -ss 00:00:10 -t 00:00:20 -vcodec copy -acodec copy cutsection1.avi
 : sourcemovie.avi 비디오의 10초(start) 부터 20초(duration)의 시간동안의 구간을 잘라내어 cutsection1.avi파일에 저장합니다.
 : "-vcodec copy -acodec copy" 옵션은 원본과 같은 코덱 유형을 사용하라는 의미 입니다.



[비디오 파일에서 특정영역을 Crop하여 저장]

ffmpeg -i inputfile.avi -croptop 88 -cropbottom 88 -cropleft 360 -cropright 360 output.avi
 : input.avi파일로 부터 옵션으로 지정한 crop 영역을 제외한 영상을 outputfile.avi파일로 저장합니다.



[비디오 파일에 Padding영역을 지정하여 저장]

ffmpeg -i input.avi  -padtop 120  -padbottom 120  -padcolor 000000  output.avi
 : input.avi파일에서 지정된 pad영역(위에 120, 아래에 120)을 추가한 영상을 output.avi파일로 저장합니다.



[비디오 파일 합치기 - 2단계 작업]

1. cat cutsection1.avi cutsection2.avi > fullmovie.avi
   (또는  "copy /b cutsection1. avi + cutsection2. avi fullmovie.avi")
   : cutsection1.avi파일과 cutsection2.avi파일을 cat명령을 통해  fullmovie.avi로 강제로 합칩니다.

2. ffmpeg -i fullmovie.avi -sameq finished.avi
   : 정상적인 타임스탬프의 기록을 위해 다음과 같은 정리 과정을 거칩니다.



[비디오로 부터 사운드 추출]

FFmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3
 : source_video.avi 비디오 파일로 부터 사운드 데이터를 추출하여 mp3파일로 저장합니다.



[비디오파일 에서 사운드 제거]

FFmpeg -i input.avi -an output.avi
 : input.avi파일에서 사운드를 제거한후 output.avi파일로 저장합니다.



[비디오파일 에서 영상 제거]

FFmpeg -i input.avi -vn -ab 128 output.mp3
 : input.avi파일에서 영상을 제거한후 output.mp3파일로 저장합니다.



[영상파일과 사운드 파일을 결합]

ffmpeg -i son.wav -i video_origine.avi video_finale.mpg
 : son.wav 사운드 파일과 video_origine.avi 비디오 파일을 합쳐서 video_finale.mpg로 저장합니다.



[Wav파일을 Mp3로 변환]

FFmpeg -i son_origine.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 son_final.mp3



[오디오 볼륨 조정]

FFmpeg -i -vol -acodec



[비디오파일의 영상을 순차적인 이미지들로 저장]

FFmpeg -i video.mpg image%d.jpg
 : video.mpg파일의 영상을 여러개의 이미지 파일로 나누어 저장합니다.(image0.jpg ~ image??.jpg)

FFmpeg -i video.mpg  -r 1 -t 4  image%d.jpeg
 : -r옵션을 사용 함으로 초당 이미지를 얻을 수 있습니다. -t 4 오션으로 4초동안 4장의 이미지를 저장합니다.




[이미지 파일들로 부터 비디오파일 생성]

FFmpeg -f image2 -i image%d.jpg video.mpg
 : 현재 폴더에 존재하는 image%d.jpg 파일이름 형식을 가지는 순차 이미지들을 video.mpg파일로 변환합니다.



[비디오 파일을 에니메이션 Gif파일로 변환 저장]

FFmpeg -i source_video.avi gif_animated.gif
 : source_video.avi 비디오 파일을 gif_animated.gif 에이메이션 GIF파일(uncompressed)로 저장합니다.