ffmpeg man page on aLinux

Man page or keyword search:  
man Server   7435 pages
apropos Keyword Search (all sections)
Output format
aLinux logo
[printable version]

FFMPEG(1)							     FFMPEG(1)

NAME
       ffmpeg - FFmpeg video converter

SYNOPSIS
       ffmpeg [[infile options][-i infile]]... {[outfile options] outfile}...

DESCRIPTION
       As a general rule, options are applied to the next specified file.
       Therefore, order is important, and you can have the same option on the
       command line multiple times. Each occurrence is then applied to the
       next input or output file.

       * To set the video bitrate of the output file to 64kbit/s:

	       ffmpeg -i input.avi -b 64k output.avi

       * To force the frame rate of the output file to 24 fps:

	       ffmpeg -i input.avi -r 24 output.avi

       * To force the frame rate of the input file (valid for raw formats
       only) to 1 fps and the frame rate of the output file to 24 fps:

	       ffmpeg -r 1 -i input.m2v -r 24 output.avi

       The format option may be needed for raw input files.

       By default, FFmpeg tries to convert as losslessly as possible: It uses
       the same audio and video parameters for the outputs as the one speci‐
       fied for the inputs.

OPTIONS
       Main options

       -L  Show license.

       -h  Show help.

       -version
	   Show version.

       -formats
	   Show available formats, codecs, protocols, ...

       -f fmt
	   Force format.

       -i filename
	   input file name

       -y  Overwrite output files.

       -t duration
	   Restrict the transcoded/captured video sequence to the duration
	   specified in seconds.  "hh:mm:ss[.xxx]" syntax is also supported.

       -fs limit_size
	   Set the file size limit.

       -ss position
	   Seek to given time position in seconds.  "hh:mm:ss[.xxx]" syntax is
	   also supported.

       -itsoffset offset
	   Set the input time offset in seconds.  "[-]hh:mm:ss[.xxx]" syntax
	   is also supported.  This option affects all the input files that
	   follow it.  The offset is added to the timestamps of the input
	   files.  Specifying a positive offset means that the corresponding
	   streams are delayed by 'offset' seconds.

       -title string
	   Set the title.

       -timestamp time
	   Set the timestamp.

       -author string
	   Set the author.

       -copyright string
	   Set the copyright.

       -comment string
	   Set the comment.

       -album string
	   Set the album.

       -track number
	   Set the track.

       -year number
	   Set the year.

       -v number
	   Set the logging verbosity level.

       -target type
	   Specify target file type ("vcd", "svcd", "dvd", "dv", "dv50",
	   "pal-vcd", "ntsc-svcd", ... ). All the format options (bitrate,
	   codecs, buffer sizes) are then set automatically. You can just
	   type:

		   ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg

	   Nevertheless you can specify additional options as long as you know
	   they do not conflict with the standard, as in:

		   ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg

       -dframes number
	   Set the number of data frames to record.

       -scodec codec
	   Force subtitle codec ('copy' to copy stream).

       -newsubtitle
	   Add a new subtitle stream to the current output stream.

       -slang code
	   Set the ISO 639 language code (3 letters) of the current subtitle
	   stream.

       Video Options

       -b bitrate
	   Set the video bitrate in bit/s (default = 200 kb/s).

       -vframes number
	   Set the number of video frames to record.

       -r fps
	   Set frame rate (Hz value, fraction or abbreviation), (default =
	   25).

       -s size
	   Set frame size. The format is wxh (ffserver default = 160x128, ffm‐
	   peg default = same as source).  The following abbreviations are
	   recognized:

	   sqcif
	       128x96

	   qcif
	       176x144

	   cif 352x288

	   4cif
	       704x576

	   qqvga
	       160x120

	   qvga
	       320x240

	   vga 640x480

	   svga
	       800x600

	   xga 1024x768

	   uxga
	       1600x1200

	   qxga
	       2048x1536

	   sxga
	       1280x1024

	   qsxga
	       2560x2048

	   hsxga
	       5120x4096

	   wvga
	       852x480

	   wxga
	       1366x768

	   wsxga
	       1600x1024

	   wuxga
	       1920x1200

	   woxga
	       2560x1600

	   wqsxga
	       3200x2048

	   wquxga
	       3840x2400

	   whsxga
	       6400x4096

	   whuxga
	       7680x4800

	   cga 320x200

	   ega 640x350

	   hd480
	       852x480

	   hd720
	       1280x720

	   hd1080
	       1920x1080

       -aspect aspect
	   Set aspect ratio (4:3, 16:9 or 1.3333, 1.7777).

       -croptop size
	   Set top crop band size (in pixels).

       -cropbottom size
	   Set bottom crop band size (in pixels).

       -cropleft size
	   Set left crop band size (in pixels).

       -cropright size
	   Set right crop band size (in pixels).

       -padtop size
	   Set top pad band size (in pixels).

       -padbottom size
	   Set bottom pad band size (in pixels).

       -padleft size
	   Set left pad band size (in pixels).

       -padright size
	   Set right pad band size (in pixels).

       -padcolor hex_color
	   Set color of padded bands. The value for padcolor is expressed as a
	   six digit hexadecimal number where the first two digits represent
	   red, the middle two digits green and last two digits blue (default
	   = 000000 (black)).

       -vn Disable video recording.

       -bt tolerance
	   Set video bitrate tolerance (in bits, default 4000k).  Has a mini‐
	   mum value of: (target_bitrate/target_framerate).  In 1-pass mode,
	   bitrate tolerance specifies how far ratecontrol is willing to devi‐
	   ate from the target average bitrate value. This is not related to
	   min/max bitrate. Lowering tolerance too much has an adverse effect
	   on quality.

       -maxrate bitrate
	   Set max video bitrate (in bit/s).  Requires -bufsize to be set.

       -minrate bitrate
	   Set min video bitrate (in bit/s).  Most useful in setting up a CBR
	   encode:

		   ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v

	   It is of little use elsewise.

       -bufsize size
	   Set video buffer verifier buffer size (in bits).

       -vcodec codec
	   Force video codec to codec. Use the "copy" special value to tell
	   that the raw codec data must be copied as is.

       -sameq
	   Use same video quality as source (implies VBR).

       -pass n
	   Select the pass number (1 or 2). It is useful to do two pass encod‐
	   ing. The statistics of the video are recorded in the first pass and
	   the video is generated at the exact requested bitrate in the second
	   pass.

       -passlogfile file
	   Set two pass logfile name to file.

       -newvideo
	   Add a new video stream to the current output stream.

       Advanced Video Options

       -pix_fmt format
	   Set pixel format. Use 'list' as parameter to show all the supported
	   pixel formats.

       -sws_flags flags
	   Set SwScaler flags (only available when compiled with swscale sup‐
	   port).

       -g gop_size
	   Set the group of pictures size.

       -intra
	   Use only intra frames.

       -vdt n
	   Discard threshold.

       -qscale q
	   Use fixed video quantizer scale (VBR).

       -qmin q
	   minimum video quantizer scale (VBR)

       -qmax q
	   maximum video quantizer scale (VBR)

       -qdiff q
	   maximum difference between the quantizer scales (VBR)

       -qblur blur
	   video quantizer scale blur (VBR) (range 0.0 - 1.0)

       -qcomp compression
	   video quantizer scale compression (VBR) (default 0.5).  Constant of
	   ratecontrol equation. Recommended range for default rc_eq: 0.0-1.0

       -lmin lambda
	   minimum video lagrange factor (VBR)

       -lmax lambda
	   max video lagrange factor (VBR)

       -mblmin lambda
	   minimum macroblock quantizer scale (VBR)

       -mblmax lambda
	   maximum macroblock quantizer scale (VBR)

	   These four options (lmin, lmax, mblmin, mblmax) use 'lambda' units,
	   but you may use the QP2LAMBDA constant to easily convert from 'q'
	   units:

		   ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext

       -rc_init_cplx complexity
	   initial complexity for single pass encoding

       -b_qfactor factor
	   qp factor between P- and B-frames

       -i_qfactor factor
	   qp factor between P- and I-frames

       -b_qoffset offset
	   qp offset between P- and B-frames

       -i_qoffset offset
	   qp offset between P- and I-frames

       -rc_eq equation
	   Set rate control equation (default = "tex^qComp").

       -rc_override override
	   rate control override for specific intervals

       -me_method method
	   Set motion estimation method to method.  Available methods are
	   (from lowest to best quality):

	   zero
	       Try just the (0, 0) vector.

	   phods
	   log
	   x1
	   hex
	   umh
	   epzs
	       (default method)

	   full
	       exhaustive search (slow and marginally better than epzs)

       -dct_algo algo
	   Set DCT algorithm to algo. Available values are:

	   0   FF_DCT_AUTO (default)

	   1   FF_DCT_FASTINT

	   2   FF_DCT_INT

	   3   FF_DCT_MMX

	   4   FF_DCT_MLIB

	   5   FF_DCT_ALTIVEC

       -idct_algo algo
	   Set IDCT algorithm to algo. Available values are:

	   0   FF_IDCT_AUTO (default)

	   1   FF_IDCT_INT

	   2   FF_IDCT_SIMPLE

	   3   FF_IDCT_SIMPLEMMX

	   4   FF_IDCT_LIBMPEG2MMX

	   5   FF_IDCT_PS2

	   6   FF_IDCT_MLIB

	   7   FF_IDCT_ARM

	   8   FF_IDCT_ALTIVEC

	   9   FF_IDCT_SH4

	   10  FF_IDCT_SIMPLEARM

       -er n
	   Set error resilience to n.

	   1   FF_ER_CAREFUL (default)

	   2   FF_ER_COMPLIANT

	   3   FF_ER_AGGRESSIVE

	   4   FF_ER_VERY_AGGRESSIVE

       -ec bit_mask
	   Set error concealment to bit_mask. bit_mask is a bit mask of the
	   following values:

	   1   FF_EC_GUESS_MVS (default = enabled)

	   2   FF_EC_DEBLOCK (default = enabled)

       -bf frames
	   Use 'frames' B-frames (supported for MPEG-1, MPEG-2 and MPEG-4).

       -mbd mode
	   macroblock decision

	   0   FF_MB_DECISION_SIMPLE: Use mb_cmp (cannot change it yet in FFm‐
	       peg).

	   1   FF_MB_DECISION_BITS: Choose the one which needs the fewest
	       bits.

	   2   FF_MB_DECISION_RD: rate distortion

       -4mv
	   Use four motion vector by macroblock (MPEG-4 only).

       -part
	   Use data partitioning (MPEG-4 only).

       -bug param
	   Work around encoder bugs that are not auto-detected.

       -strict strictness
	   How strictly to follow the standards.

       -aic
	   Enable Advanced intra coding (h263+).

       -umv
	   Enable Unlimited Motion Vector (h263+)

       -deinterlace
	   Deinterlace pictures.

       -ilme
	   Force interlacing support in encoder (MPEG-2 and MPEG-4 only).  Use
	   this option if your input file is interlaced and you want to keep
	   the interlaced format for minimum losses.  The alternative is to
	   deinterlace the input stream with -deinterlace, but deinterlacing
	   introduces losses.

       -psnr
	   Calculate PSNR of compressed frames.

       -vstats
	   Dump video coding statistics to vstats_HHMMSS.log.

       -vstats_file file
	   Dump video coding statistics to file.

       -vhook module
	   Insert video processing module. module contains the module name and
	   its parameters separated by spaces.

       -top n
	   top=1/bottom=0/auto=-1 field first

       -dc precision
	   Intra_dc_precision.

       -vtag fourcc/tag
	   Force video tag/fourcc.

       -qphist
	   Show QP histogram.

       -vbsf bitstream_filter
	   Bitstream filters available are "dump_extra", "remove_extra",
	   "noise", "h264_mp4toannexb", "imxdump", "mjpegadump".

		   ffmpeg -i h264.mp4 -vcodec copy -vbsf h264_mp4toannexb -an out.h264

       Audio Options

       -aframes number
	   Set the number of audio frames to record.

       -ar freq
	   Set the audio sampling frequency (default = 44100 Hz).

       -ab bitrate
	   Set the audio bitrate in bit/s (default = 64k).

       -ac channels
	   Set the number of audio channels (default = 1).

       -an Disable audio recording.

       -acodec codec
	   Force audio codec to codec. Use the "copy" special value to specify
	   that the raw codec data must be copied as is.

       -newaudio
	   Add a new audio track to the output file. If you want to specify
	   parameters, do so before "-newaudio" ("-acodec", "-ab", etc..).

	   Mapping will be done automatically, if the number of output streams
	   is equal to the number of input streams, else it will pick the
	   first one that matches. You can override the mapping using "-map"
	   as usual.

	   Example:

		   ffmpeg -i file.mpg -vcodec copy -acodec ac3 -ab 384k test.mpg -acodec mp2 -ab 192k -newaudio

       -alang code
	   Set the ISO 639 language code (3 letters) of the current audio
	   stream.

       Advanced Audio options:

       -atag fourcc/tag
	   Force audio tag/fourcc.

       -absf bitstream_filter
	   Bitstream filters available are "dump_extra", "remove_extra",
	   "noise", "mp3comp", "mp3decomp".

       Subtitle options:

       -scodec codec
	   Force subtitle codec ('copy' to copy stream).

       -newsubtitle
	   Add a new subtitle stream to the current output stream.

       -slang code
	   Set the ISO 639 language code (3 letters) of the current subtitle
	   stream.

       -sbsf bitstream_filter
	   Bitstream filters available are "mov2textsub", "text2movsub".

		   ffmpeg -i file.mov -an -vn -sbsf mov2textsub -scodec copy -f rawvideo sub.txt

       Audio/Video grab options

       -vc channel
	   Set video grab channel (DV1394 only).

       -tvstd standard
	   Set television standard (NTSC, PAL (SECAM)).

       -isync
	   Synchronize read on input.

       Advanced options

       -map input_stream_id[:sync_stream_id]
	   Set stream mapping from input streams to output streams.  Just enu‐
	   merate the input streams in the order you want them in the output.
	   sync_stream_id if specified sets the input stream to sync against.

       -map_meta_data outfile:infile
	   Set meta data information of outfile from infile.

       -debug
	   Print specific debug info.

       -benchmark
	   Add timings for benchmarking.

       -dump
	   Dump each input packet.

       -hex
	   When dumping packets, also dump the payload.

       -bitexact
	   Only use bit exact algorithms (for codec testing).

       -ps size
	   Set packet size in bits.

       -re Read input at native frame rate. Mainly used to simulate a grab
	   device.

       -loop_input
	   Loop over the input stream. Currently it works only for image
	   streams. This option is used for automatic FFserver testing.

       -loop_output number_of_times
	   Repeatedly loop output for formats that support looping such as
	   animated GIF (0 will loop the output infinitely).

       -threads count
	   Thread count.

       -vsync parameter
	   Video sync method. Video will be stretched/squeezed to match the
	   timestamps, it is done by duplicating and dropping frames. With
	   -map you can select from which stream the timestamps should be
	   taken. You can leave either video or audio unchanged and sync the
	   remaining stream(s) to the unchanged one.

       -async samples_per_second
	   Audio sync method. "Stretches/squeezes" the audio stream to match
	   the timestamps, the parameter is the maximum samples per second by
	   which the audio is changed.	-async 1 is a special case where only
	   the start of the audio stream is corrected without any later cor‐
	   rection.

       -copyts
	   Copy timestamps from input to output.

       -shortest
	   Finish encoding when the shortest input stream ends.

       -dts_delta_threshold
	   Timestamp discontinuity delta threshold.

       -muxdelay seconds
	   Set the maximum demux-decode delay.

       -muxpreload seconds
	   Set the initial demux-decode delay.

       FFmpeg formula evaluator

       When evaluating a rate control string, FFmpeg uses an internal formula
       evaluator.

       The following binary operators are available: "+", "-", "*", "/", "^".

       The following unary operators are available: "+", "-", "(...)".

       The following functions are available:

       sinh(x)
       cosh(x)
       tanh(x)
       sin(x)
       cos(x)
       tan(x)
       exp(x)
       log(x)
       squish(x)
       gauss(x)
       abs(x)
       max(x, y)
       min(x, y)
       gt(x, y)
       lt(x, y)
       eq(x, y)
       bits2qp(bits)
       qp2bits(qp)

       The following constants are available:

       PI
       E
       iTex
       pTex
       tex
       mv
       fCode
       iCount
       mcVar
       var
       isI
       isP
       isB
       avgQP
       qComp
       avgIITex
       avgPITex
       avgPPTex
       avgBPTex
       avgTex

EXAMPLES
       Video and Audio grabbing

       FFmpeg can grab video and audio from devices given that you specify the
       input format and device.

	       ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg

       Note that you must activate the right video source and channel before
       launching FFmpeg with any TV viewer such as xawtv (<http://byte‐
       sex.org/xawtv/>) by Gerd Knorr. You also have to set the audio record‐
       ing levels correctly with a standard mixer.

       X11 grabbing

       FFmpeg can grab the X11 display.

	       ffmpeg -f x11grab -s cif -i :0.0 /tmp/out.mpg

       0.0 is display.screen number of your X11 server, same as the DISPLAY
       environment variable.

	       ffmpeg -f x11grab -s cif -i :0.0+10,20 /tmp/out.mpg

       0.0 is display.screen number of your X11 server, same as the DISPLAY
       environment variable. 10 is the x-offset and 20 the y-offset for the
       grabbing.

       Video and Audio file format conversion

       * FFmpeg can use any supported file format and protocol as input:

       Examples:

       * You can use YUV files as input:

	       ffmpeg -i /tmp/test%d.Y /tmp/out.mpg

       It will use the files:

	       /tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
	       /tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc...

       The Y files use twice the resolution of the U and V files. They are raw
       files, without header. They can be generated by all decent video
       decoders. You must specify the size of the image with the -s option if
       FFmpeg cannot guess it.

       * You can input from a raw YUV420P file:

	       ffmpeg -i /tmp/test.yuv /tmp/out.avi

       test.yuv is a file containing raw YUV planar data. Each frame is com‐
       posed of the Y plane followed by the U and V planes at half vertical
       and horizontal resolution.

       * You can output to a raw YUV420P file:

	       ffmpeg -i mydivx.avi hugefile.yuv

       * You can set several input files and output files:

	       ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg

       Converts the audio file a.wav and the raw YUV video file a.yuv to MPEG
       file a.mpg.

       * You can also do audio and video conversions at the same time:

	       ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2

       Converts a.wav to MPEG audio at 22050Hz sample rate.

       * You can encode to several formats at the same time and define a map‐
       ping from input stream to output streams:

	       ffmpeg -i /tmp/a.wav -ab 64k /tmp/a.mp2 -ab 128k /tmp/b.mp2 -map 0:0 -map 0:0

       Converts a.wav to a.mp2 at 64 kbits and to b.mp2 at 128 kbits. '-map
       file:index' specifies which input stream is used for each output
       stream, in the order of the definition of output streams.

       * You can transcode decrypted VOBs:

	       ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800k -g 300 -bf 2 -acodec libmp3lame -ab 128k snatch.avi

       This is a typical DVD ripping example; the input is a VOB file, the
       output an AVI file with MPEG-4 video and MP3 audio. Note that in this
       command we use B-frames so the MPEG-4 stream is DivX5 compatible, and
       GOP size is 300 which means one intra frame every 10 seconds for
       29.97fps input video. Furthermore, the audio stream is MP3-encoded so
       you need to enable LAME support by passing "--enable-libmp3lame" to
       configure.  The mapping is particularly useful for DVD transcoding to
       get the desired audio language.

       NOTE: To see the supported input formats, use "ffmpeg -formats".

SEE ALSO
       ffserver(1), ffplay(1) and the HTML documentation of ffmpeg.

AUTHOR
       Fabrice Bellard

				  2008-08-28			     FFMPEG(1)
[top]

List of man pages available for aLinux

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
...................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net