📄 ffmpeg-doc.texi.svn-base
字号:
\input texinfo @c -*- texinfo -*-@settitle FFmpeg Documentation@titlepage@sp 7@center @titlefont{FFmpeg Documentation}@sp 3@end titlepage@chapter IntroductionFFmpeg is a very fast video and audio converter. It can also grab froma live audio/video source.The command line interface is designed to be intuitive, in the sensethat FFmpeg tries to figure out all parameters that can possibly bederived automatically. You usually only have to specify the targetbitrate you want.FFmpeg can also convert from any sample rate to any other, and resizevideo on the fly with a high quality polyphase filter.@chapter Quick Start@c man begin EXAMPLES@section Video and Audio grabbingFFmpeg can grab video and audio from devices given that you specify the inputformat and device.@exampleffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg@end exampleNote that you must activate the right video source and channel beforelaunching FFmpeg with any TV viewer such as xawtv(@url{http://bytesex.org/xawtv/}) by Gerd Knorr. You alsohave to set the audio recording levels correctly with astandard mixer.@section X11 grabbingFFmpeg can grab the X11 display.@exampleffmpeg -f x11grab -s cif -i :0.0 /tmp/out.mpg@end example0.0 is display.screen number of your X11 server, same asthe DISPLAY environment variable.@exampleffmpeg -f x11grab -s cif -i :0.0+10,20 /tmp/out.mpg@end example0.0 is display.screen number of your X11 server, same as the DISPLAY environmentvariable. 10 is the x-offset and 20 the y-offset for the grabbing.@section 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:@exampleffmpeg -i /tmp/test%d.Y /tmp/out.mpg@end exampleIt will use the files:@example/tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc...@end exampleThe Y files use twice the resolution of the U and V files. They areraw files, without header. They can be generated by all decent videodecoders. You must specify the size of the image with the @option{-s} optionif FFmpeg cannot guess it.* You can input from a raw YUV420P file:@exampleffmpeg -i /tmp/test.yuv /tmp/out.avi@end exampletest.yuv is a file containing raw YUV planar data. Each frame is composedof the Y plane followed by the U and V planes at half vertical andhorizontal resolution.* You can output to a raw YUV420P file:@exampleffmpeg -i mydivx.avi hugefile.yuv@end example* You can set several input files and output files:@exampleffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg@end exampleConverts the audio file a.wav and the raw YUV video file a.yuvto MPEG file a.mpg.* You can also do audio and video conversions at the same time:@exampleffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2@end exampleConverts a.wav to MPEG audio at 22050Hz sample rate.* You can encode to several formats at the same time and define amapping from input stream to output streams:@exampleffmpeg -i /tmp/a.wav -ab 64k /tmp/a.mp2 -ab 128k /tmp/b.mp2 -map 0:0 -map 0:0@end exampleConverts a.wav to a.mp2 at 64 kbits and to b.mp2 at 128 kbits. '-mapfile:index' specifies which input stream is used for each outputstream, in the order of the definition of output streams.* You can transcode decrypted VOBs@exampleffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800k -g 300 -bf 2 -acodec libmp3lame -ab 128k snatch.avi@end exampleThis is a typical DVD ripping example; the input is a VOB file, theoutput an AVI file with MPEG-4 video and MP3 audio. Note that in thiscommand we use B-frames so the MPEG-4 stream is DivX5 compatible, andGOP size is 300 which means one intra frame every 10 seconds for 29.97fpsinput video. Furthermore, the audio stream is MP3-encoded so you needto enable LAME support by passing @code{--enable-libmp3lame} to configure.The mapping is particularly useful for DVD transcodingto get the desired audio language.NOTE: To see the supported input formats, use @code{ffmpeg -formats}.@c man end@chapter Invocation@section SyntaxThe generic syntax is:@example@c man begin SYNOPSISffmpeg [[infile options][@option{-i} @var{infile}]]... @{[outfile options] @var{outfile}@}...@c man end@end example@c man begin DESCRIPTIONAs a general rule, options are applied to the next specifiedfile. Therefore, order is important, and you can have the sameoption on the command line multiple times. Each occurrence isthen applied to the next input or output file.* To set the video bitrate of the output file to 64kbit/s:@exampleffmpeg -i input.avi -b 64k output.avi@end example* To force the frame rate of the input and output file to 24 fps:@exampleffmpeg -r 24 -i input.avi output.avi@end example* To force the frame rate of the output file to 24 fps:@exampleffmpeg -i input.avi -r 24 output.avi@end example* To force the frame rate of input file to 1 fps and the output file to 24 fps:@exampleffmpeg -r 1 -i input.avi -r 24 output.avi@end exampleThe format option may be needed for raw input files.By default, FFmpeg tries to convert as losslessly as possible: Ituses the same audio and video parameters for the outputs as the onespecified for the inputs.@c man end@c man begin OPTIONS@section Main options@table @option@item -LShow license.@item -hShow help.@item -versionShow version.@item -formatsShow available formats, codecs, protocols, ...@item -f fmtForce format.@item -i filenameinput filename@item -yOverwrite output files.@item -t durationRestrict the transcoded/captured video sequenceto the duration specified in seconds.@code{hh:mm:ss[.xxx]} syntax is also supported.@item -fs limit_sizeSet the file size limit.@item -ss positionSeek to given time position in seconds.@code{hh:mm:ss[.xxx]} syntax is also supported.@item -itsoffset offsetSet the input time offset in seconds.@code{[-]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 correspondingstreams are delayed by 'offset' seconds.@item -title stringSet the title.@item -timestamp timeSet the timestamp.@item -author stringSet the author.@item -copyright stringSet the copyright.@item -comment stringSet the comment.@item -album stringSet the album.@item -track numberSet the track.@item -year numberSet the year.@item -v verboseControl amount of logging.@item -target typeSpecify 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:@exampleffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg@end exampleNevertheless you can specify additional options as long as you knowthey do not conflict with the standard, as in:@exampleffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg@end example@item -dframes numberSet the number of data frames to record.@item -scodec codecForce subtitle codec ('copy' to copy stream).@item -newsubtitleAdd a new subtitle stream to the current output stream.@item -slang codeSet the ISO 639 language code (3 letters) of the current subtitle stream.@end table@section Video Options@table @option@item -b bitrateSet the video bitrate in bit/s (default = 200 kb/s).@item -vframes numberSet the number of video frames to record.@item -r fpsSet frame rate (Hz value, fraction or abbreviation), (default = 25).@item -s sizeSet frame size. The format is @samp{wxh} (ffserver default = 160x128, ffmpeg default = same as source).The following abbreviations are recognized:@table @samp@item sqcif128x96@item qcif176x144@item cif352x288@item 4cif704x576@item qqvga160x120@item qvga320x240@item vga640x480@item svga800x600@item xga1024x768@item uxga1600x1200@item qxga2048x1536@item sxga1280x1024@item qsxga2560x2048@item hsxga5120x4096@item wvga852x480@item wxga1366x768@item wsxga1600x1024@item wuxga1920x1200@item woxga2560x1600@item wqsxga3200x2048@item wquxga3840x2400@item whsxga6400x4096@item whuxga7680x4800@item cga320x200@item ega640x350@item hd480852x480@item hd7201280x720@item hd10801920x1080@end table@item -aspect aspectSet aspect ratio (4:3, 16:9 or 1.3333, 1.7777).@item -croptop sizeSet top crop band size (in pixels).@item -cropbottom sizeSet bottom crop band size (in pixels).@item -cropleft sizeSet left crop band size (in pixels).@item -cropright sizeSet right crop band size (in pixels).@item -padtop sizeSet top pad band size (in pixels).@item -padbottom sizeSet bottom pad band size (in pixels).@item -padleft sizeSet left pad band size (in pixels).@item -padright sizeSet right pad band size (in pixels).@item -padcolor (hex color)Set color of padded bands. The value for padcolor is expressedas a six digit hexadecimal number where the first two digitsrepresent red, the middle two digits green and last two digitsblue (default = 000000 (black)).@item -vnDisable video recording.@item -bt toleranceSet video bitrate tolerance (in bit/s).@item -maxrate bitrateSet max video bitrate (in bit/s).@item -minrate bitrateSet min video bitrate (in bit/s).@item -bufsize sizeSet video buffer verifier buffer size (in bits).@item -vcodec codecForce video codec to @var{codec}. Use the @code{copy} special value totell that the raw codec data must be copied as is.@item -sameqUse same video quality as source (implies VBR).@item -pass nSelect the pass number (1 or 2). It is useful to do two passencoding. The statistics of the video are recorded in the firstpass and the video is generated at the exact requested bitratein the second pass.@item -passlogfile fileSet two pass logfile name to @var{file}.@item -newvideoAdd a new video stream to the current output stream.@end table@section Advanced Video Options@table @option@item -pix_fmt formatSet pixel format. Use 'list' as parameter to show all the supportedpixel formats.@item -sws_flags flagsSet SwScaler flags (only available when compiled with SwScaler support).@item -g gop_sizeSet the group of pictures size.@item -intraUse only intra frames.@item -vdt n
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -