[FFMPEG] 영상을 변환 하자




WPF 로 어느 플랫폼의 컨텐츠 생성기를 만들고 있다. 취지는 누구나 빠르게 컨텐츠를 배출할수 있어야 한다.

기존의 방식은 복잡한 xml 에 값을 하나하나 대입을 하고 하는 정신노동을 요구했지만, 제작한 컨텐츠 생성기로

자동화, 간략화 할수 있었다. 그러던 와중 딲! 막힌것이 영상 이다. 컨텐츠 세트중 영상이 h264 로 뽑아야 하는데

기존의 방법대로라면 영상변환툴을 열어서 무압축으로 된 mov들을 임포트하여 수동조작으로 변환하여야

했다. 컨텐츠 생성기의 컨셉에 안맞는 방법이다. 영상 변환 마져 한방에 되어야 했다. 그래야 완벽하다.

물론 변환하는 프로그램이야 널렸지만 그것을 제어할수 있냐 / 없냐가 중요했다.

그러던 와중 2가지 방법을 찾을수 있었다.

 * MS Expression Encoder 
장) 안정적이다 , 편리한 sdk 를 제공한다 ,
단) 유료다, 추가 설치가 필요하다.

 * FFmpeg
장) 무료다, 설치가 필요없다.
단) 콘솔 명령줄형태라서 수동으로 옵션을 입력해야한다. 에러시 이벤트를 받을 수 없다.


우선 FFmpeg 를 알아 보겠다.

출처 :http://www.hiteshagrawal.com/ffmpeg/converting-audiovideos-using-ffmpeg
Common Parameters
-i ‘filename’ Filename will be the Path of Source Filename
-y Overwrite the existing output file without prompting
-an disable audio

Video Related Parameters

-aspect ‘aspect ratio’ Set Aspect Ratio for the video (4:3, 16:9 or 1.3333, 1.7777)
-r ‘rate’ set frame rate in Hz for the video
-s ‘size’ set video resolution size (Width x Height)
-sameq use same video quality as source

Audio Related Parameters

-ar ‘rate’ set audio sampling rate (in Hz)
-acodec ‘codec’ force audio codec E.g. mp3
-vol ‘volume’ change audio volume (256=normal)
-ab ‘rate’ set audio bit rate (in bits/s)

Advanced Parameters

-map_meta_data output file:input file Copy the Metadata from Input File to Converted output file

Command Line Syntax
ffmpeg –i ‘input filename’ ‘output filename’

  • Syntax Example:
    [root@linux /]# ffmpeg -i demo.mpg demo.flv
    Here FFMPEG will convert demo.mpg file to demo.flv

Conversion Examples:

Video Examples:

  • Converting MOV to FLV using FFMPEG
    ffmpeg -i movie1.mov movie1.flv
    This will convert movie1.mov file to movie1.flv
  • Converting Mpeg to FLV using FFMPEG
    ffmpeg -i movie1.mpeg movie1.flv
    This will convert movie1.mpeg file to movie1.flv
  • Converting AVI to FLV using FFMPEG
    ffmpeg -i movie1.avi -s 500×500 movie1.flv
    This will convert movie1.avi file to movie1.flv and will resize the video resolution to 500×500
  • Converting 3GP to FLV using FFMPEG
    ffmpeg -i movie1.3gp -sameq -an movie1.flv
    This will convert movie1.3gp file to movie1.flv and will keep the original file settings and will disable the audio content
  • Converting MPEG to 3GP using FFMPEG
    ffmpeg -i movie1.mpeg -ab 8.85k -acodec libamr_wb -ac 1 -ar 16000 -vcodec h263 -s qcif movie2.3gp

Audio Examples:

  • Converting aac to mp3 using FFMPEG with MetaData
    ffmpeg -i audio1.aac -ar 22050 -ab 32 -map_meta_data audio1.mp3:audio1.aac audio1.mp3
    This will convert audio1.aac to audio1.mp3 having audio rate 22.05 Khz and Audio BitRate 32Khz and will copy the meta data from .aac file to .mp3 file
  • Converting WMV to MP3 using FFMPEG
    ffmpeg -i audio1.wmv audio1.mp3
    This will convert audio1.wmv file to audio1.mp3
  • Converting WMV to FLV using FFMPEG
    ffmpeg -i audio1.wmv audio1.flv
    This will convert audio1.wmv file to audio1.flv, this will generate only audio content
  • Converting AMR to MP3 using FFMPEG
    ffmpeg -i audio1.amr -ar 22050 audio1.mp3
    This will convert audio1.amr file to audio1.mp3 having audio rate 22.05 Khz
  • Converting aac to mp3 using FFMPEG
    ffmpeg -i audio1.aac -ar 22050 -ab 32 audio1.mp3
    This will convert audio1.aac to audio1.mp3 having audio rate 22.05 Khz and Audio BitRate 32Khz



현재 내가 가장 필요한 옵션은
Mov -> Mp4(h264) 이다.
> ffmpeg -i target.mov -vcodec libx264 -sameq -s 720x480 -f mp4 test1.mp4

위에서 안나온 옵션중에 -vcodec libx264 가 바로 h264 옵션이다.
위의 포멧으로 하면 플래시에서 video 객체와 호환되는 포멧을 얻을수 있다.


추가적인 옵션 : http://ospace.tistory.com/125

Yamecoder 야매코더_
C# 2011.03.05 05:22
Powerd by Tistory, designed by criuce
rss