- 浏览: 705592 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
shappy1978:
自己踩死自己了,我还是有远见的嘛
该死的微软,该死的IE -
calosteward:
I know Zxing and shopsavvy, bot ...
[trans]COMPARISON OF MOBILE BARCODE SCANNERS -
qq690388648:
唉……四年前的Bug,现在还没改,Apache也有不足的地方啊 ...
POI解析Word表格备忘 -
shappy1978:
Now I get to say that every met ...
Jailbreak Detection on iOS -
hebeixiaolei:
你好,我想问一下,用poi如何往word文档里插入超链接呀!
POI读取Word文档总结
FFmpeg Documentation
Table of Contents
- 1. Synopsis
- 2. Description
- 3. Options
- 4. Tips
- 5. Examples
- 6. Expression Evaluation
- 7. Input Devices
- 8. Output Devices
- 9. Protocols
- 10. Bitstream Filters
- 11. Filtergraph description
- 12. Audio Filters
- 13. Audio Sources
- 14. Audio Sinks
-
15. Video Filters
- 15.1 blackframe
- 15.2 crop
- 15.3 cropdetect
- 15.4 drawbox
- 15.5 fifo
- 15.6 format
- 15.7 frei0r
- 15.8 gradfun
- 15.9 hflip
- 15.10 hqdn3d
- 15.11 noformat
- 15.12 null
- 15.13 ocv_smooth
- 15.14 overlay
- 15.15 pad
- 15.16 pixdesctest
- 15.17 scale
- 15.18 setpts
- 15.19 settb
- 15.20 slicify
- 15.21 transpose
- 15.22 unsharp
- 15.23 vflip
- 15.24 yadif
- 16. Video Sources
- 17. Video Sinks
FFmpeg Documentation
1. Synopsis
The generic syntax is:
ffmpeg [[infile options][`-i' infile]]... {[outfile options] outfile}...
2. Description
FFmpeg is a very fast video and audio converter. It can also grab from a live audio/video source.
The command line interface is designed to be intuitive, in the sense that FFmpeg tries to figure out all parameters that can possibly be derived automatically. You usually only have to specify the target bitrate you want.
FFmpeg can also convert from any sample rate to any other, and resize video on the fly with a high quality polyphase filter.
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 specified for the inputs.
3. Options
All the numerical options, if not specified otherwise, accept in input a string representing a number, which may contain one of the International System number postfixes, for example 'K', 'M', 'G'. If 'i' is appended after the postfix, powers of 2 are used instead of powers of 10. The 'B' postfix multiplies the value for 8, and can be appended after another postfix or used alone. This allows using for example 'KB', 'MiB', 'G' and 'B' as postfix.
Options which do not take arguments are boolean options, and set the corresponding value to true. They can be set to false by prefixing with "no" the option name, for example using "-nofoo" in the commandline will set to false the boolean option with name "foo".
3.1 Generic options
These options are shared amongst the ff* tools.
3.2 Main options
hh:mm:ss[.xxx]
syntax is also supported.hh:mm:ss[.xxx]
syntax is also supported.[-]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.now|([(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH[:MM[:SS[.m...]]])|(HH[MM[SS[.m...]]]))[Z|z])If the value is "now" it takes the current time. Time is local time unless 'Z' or 'z' is appended, in which case it is interpreted as UTC. If the year-month-day part is not specified it takes the current year-month-day.
ffmpeg -i in.avi -metadata title="my title" out.flv
ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpgNevertheless 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
3.3 Video Options
ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2vIt is of little use elsewise.
copy
special value to tell that the raw codec data must be copied as is.ffmpeg -i foo.mov -vcodec libxvid -pass 1 -an -f rawvideo -y NUL ffmpeg -i foo.mov -vcodec libxvid -pass 1 -an -f rawvideo -y /dev/null
3.4 Advanced Video Options
ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
tex^qComp
). When computing the rate control equation expression, besides the standard functions defined in the section "Expression Evaluation", the following functions are available:
ffmpeg -i h264.mp4 -vcodec copy -vbsf h264_mp4toannexb -an out.h264
3.5 Audio Options
copy
special value to specify that the raw codec data must be copied as is.-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
3.6 Advanced Audio options:
3.7 Subtitle options:
ffmpeg -i file.mov -an -vn -sbsf mov2textsub -scodec copy -f rawvideo sub.txt
3.8 Audio/Video grab options
3.9 Advanced options
ffmpeg -i in.ogg -map_meta_data 0:0,s0 out.mp3
ffmpeg -i infile -streamid 0:33 -streamid 1:36 out.ts
3.10 Preset files
A preset file contains a sequence of option=value pairs, one for each line, specifying a sequence of options which would be awkward to specify on the command line. Lines starting with the hash ('#') character are ignored and are used to provide comments. Check the `ffpresets' directory in the FFmpeg source tree for examples.
Preset files are specified with the vpre
, apre
, spre
, and fpre
options. The fpre
option takes the filename of the preset instead of a preset name as input and can be used for any kind of codec. For the vpre
, apre
, and spre
options, the options specified in a preset file are applied to the currently selected codec of the same type as the preset option.
The argument passed to the vpre
, apre
, and spre
preset options identifies the preset file to use according to the following rules:
First ffmpeg searches for a file named arg.ffpreset in the directories `$FFMPEG_DATADIR' (if set), and `$HOME/.ffmpeg', and in the datadir defined at configuration time (usually `PREFIX/share/ffmpeg') in that order. For example, if the argument is libx264-max
, it will search for the file `libx264-max.ffpreset'.
If no such file is found, then ffmpeg will search for a file named codec_name-arg.ffpreset in the above-mentioned directories, where codec_name is the name of the codec to which the preset file options will be applied. For example, if you select the video codec with -vcodec libx264
and use -vpre max
, then it will search for the file `libx264-max.ffpreset'.
4. Tips
- For streaming at very low bitrate application, use a low frame rate and a small GOP size. This is especially true for RealVideo where the Linux player does not seem to be very fast, so it can miss frames. An example is:
ffmpeg -g 3 -r 3 -t 10 -b 50k -s qcif -f rv10 /tmp/b.rm
- The parameter 'q' which is displayed while encoding is the current quantizer. The value 1 indicates that a very good quality could be achieved. The value 31 indicates the worst quality. If q=31 appears too often, it means that the encoder cannot compress enough to meet your bitrate. You must either increase the bitrate, decrease the frame rate or decrease the frame size.
- If your computer is not fast enough, you can speed up the compression at the expense of the compression ratio. You can use '-me zero' to speed up motion estimation, and '-intra' to disable motion estimation completely (you have only I-frames, which means it is about as good as JPEG compression).
- To have very low audio bitrates, reduce the sampling frequency (down to 22050 Hz for MPEG audio, 22050 or 11025 for AC-3).
- To have a constant quality (but a variable bitrate), use the option '-qscale n' when 'n' is between 1 (excellent quality) and 31 (worst quality).
- When converting video files, you can use the '-sameq' option which uses the same quality factor in the encoder as in the decoder. It allows almost lossless encoding.
5. Examples
5.1 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://linux.bytesex.org/xawtv/) by Gerd Knorr. You also have to set the audio recording levels correctly with a standard mixer.
5.2 X11 grabbing
FFmpeg can grab the X11 display.
ffmpeg -f x11grab -s cif -r 25 -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 -r 25 -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.
5.3 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 composed 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 22050 Hz sample rate.
* You can encode to several formats at the same time and define a mapping 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
.
* You can extract images from a video, or create a video from many images:
For extracting images from a video:
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
This will extract one video frame per second from the video and will output them in files named `foo-001.jpeg', `foo-002.jpeg', etc. Images will be rescaled to fit the new WxH values.
If you want to extract just a limited number of frames, you can use the above command in combination with the -vframes or -t option, or in combination with -ss to start extracting from a certain point in time.
For creating a video from many images:
ffmpeg -f image2 -i foo-%03d.jpeg -r 12 -s WxH foo.avi
The syntax foo-%03d.jpeg
specifies to use a decimal number composed of three digits padded with zeroes to express the sequence number. It is the same syntax supported by the C printf function, but only formats accepting a normal integer are suitable.
* You can put many streams of the same type in the output:
ffmpeg -i test1.avi -i test2.avi -vcodec copy -acodec copy -vcodec copy -acodec copy test12.avi -newvideo -newaudio
In addition to the first video and audio streams, the resulting output file `test12.avi' will contain the second video and the second audio stream found in the input streams list.
The -newvideo
, -newaudio
and -newsubtitle
options have to be specified immediately after the name of the output file to which you want to add them.
6. Expression Evaluation
When evaluating an arithemetic expression, FFmpeg uses an internal formula evaluator, implemented through the `libavutil/eval.h' interface.
An expression may contain unary, binary operators, constants, and functions.
Two expressions expr1 and expr2 can be combined to form another expression "expr1;expr2". expr1 and expr2 are evaluated in turn, and the new expression evaluates to the value of expr2.
The following binary operators are available: +
, -
, *
, /
, ^
.
The following unary operators are available: +
, -
.
The following functions are available:
Note that:
*
works like AND
+
works like OR
thus
if A then B else C
is equivalent to
A*B + not(A)*C
When A evaluates to either 1 or 0, that is the same as
A*B + eq(A,0)*C
In your C code, you can extend the list of unary and binary functions, and define recognized constants, so that they are available for your expressions.
The evaluator also recognizes the International System number postfixes. If 'i' is appended after the postfix, powers of 2 are used instead of powers of 10. The 'B' postfix multiplies the value for 8, and can be appended after another postfix or used alone. This allows using for example 'KB', 'MiB', 'G' and 'B' as postfix.
Follows the list of available International System postfixes, with indication of the corresponding powers of 10 and of 2.
7. Input Devices
Input devices are configured elements in FFmpeg which allow to access the data coming from a multimedia device attached to your system.
When you configure your FFmpeg build, all the supported input devices are enabled by default. You can list all available ones using the configure option "--list-indevs".
You can disable all the input devices using the configure option "--disable-indevs", and selectively enable an input device using the option "--enable-indev=INDEV", or you can disable a particular input device using the option "--disable-indev=INDEV".
The option "-formats" of the ff* tools will display the list of supported input devices (amongst the demuxers).
A description of the currently available input devices follows.
7.1 alsa
ALSA (Advanced Linux Sound Architecture) input device.
To enable this input device during configuration you need libasound installed on your system.
This device allows capturing from an ALSA device. The name of the device to capture has to be an ALSA card identifier.
An ALSA identifier has the syntax:
hw:CARD[,DEV[,SUBDEV]]
where the DEV and SUBDEV components are optional.
The three arguments (in order: CARD,DEV,SUBDEV) specify card number or identifier, device number and subdevice number (-1 means any).
To see the list of cards currently recognized by your system check the files `/proc/asound/cards' and `/proc/asound/devices'.
For example to capture with `ffmpeg' from an ALSA device with card id 0, you may run the command:
ffmpeg -f alsa -i hw:0 alsaout.wav
For more information see: http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html
7.2 bktr
BSD video input device.
7.3 dv1394
Linux DV 1394 input device.
7.4 jack
JACK input device.
To enable this input device during configuration you need libjack installed on your system.
A JACK input device creates one or more JACK writable clients, one for each audio channel, with name client_name:input_N, where client_name is the name provided by the application, and N is a number which identifies the channel. Each writable client will send the acquired data to the FFmpeg input device.
Once you have created one or more JACK readable clients, you need to connect them to one or more JACK writable clients.
To connect or disconnect JACK clients you can use the `jack_connect' and `jack_disconnect' programs, or do it through a graphical interface, for example with `qjackctl'.
To list the JACK clients and their properties you can invoke the command `jack_lsp'.
Follows an example which shows how to capture a JACK readable client with `ffmpeg'.
# Create a JACK writable client with name "ffmpeg". $ ffmpeg -f jack -i ffmpeg -y out.wav # Start the sample jack_metro readable client. $ jack_metro -b 120 -d 0.2 -f 4000 # List the current JACK clients. $ jack_lsp -c system:capture_1 system:capture_2 system:playback_1 system:playback_2 ffmpeg:input_1 metro:120_bpm # Connect metro to the ffmpeg writable client. $ jack_connect metro:120_bpm ffmpeg:input_1
For more information read: http://jackaudio.org/
7.5 libdc1394
IIDC1394 input device, based on libdc1394 and libraw1394.
font-family: Times; font-size: med
发表评论
发表评论
-
Xib Enhanced by XCode8
2016-12-05 17:02 731I have a solution: Open stor ... -
Script to Build Universal Lib
2016-11-30 11:06 722https://www.raywenderlich.com/ ... -
Fortify Scan
2016-11-21 18:53 1305sourceanalyzer -b buidl_id -Xm ... -
Inside Code Signing
2016-11-17 14:44 613Mac OS Version 10.0 Cheeta 1 ... -
Cross Compile Script of Tesseract
2016-11-14 18:51 905The script on internet is both ... -
Homebrew saying Xcode is outdated
2016-10-28 18:44 561http://stackoverflow.com/ques ... -
iOS开发--适配iOS 10以及Xcode 8
2016-10-17 15:35 598http://www.cocoachina.com/ios/ ... -
install app to simulator
2016-09-26 16:44 1027前言 刚刚接触iOS的时候,我就一直很好奇,模拟器上面能不 ... -
issues in XCode 8
2016-09-26 16:37 648http://www.cocoachina.com/bbs/ ... -
XCode Plugin
2016-07-15 18:43 716* cmd+shift+9 //manage plugi ... -
Speedup Coding in XCode
2016-07-15 17:52 527www.cocoachina.com/ios/201607 ... -
Wifi API in iOS
2016-07-15 10:31 467查漏补缺集是自己曾经做过相关的功能,但是重做相关功能或者 ... -
About Hockey App
2016-07-04 11:38 501* free acc can only has 2 app, ... -
Appium Device Test
2016-06-29 17:18 413* set udid, device name won't ... -
[Trans] Integration between OC and JS
2016-06-28 18:47 498iOS 开发中,我们时不时的需要加载一些 Web ... -
Jenkins iOS Automation Comment
2016-06-24 16:47 605* SDK null will by default bui ... -
Salabash Test Comment
2016-06-08 19:29 446* Device test need to enable U ... -
Calabash
2016-06-02 18:24 714//calabash-cucumber for ios ... -
BDD Setup
2016-05-20 15:04 542—brew /usr/bin/ruby -e " ... -
Setup Git
2016-04-01 19:23 571http://www.tomdalling.com/blo ...
相关推荐
TransMac是一款专为Windows用户设计的软件,它允许用户轻松地与Apple的Mac OS系统进行交互,特别是处理与Mac相关的文件格式和磁盘操作。在标题"TransMac11.4免安装版"中,我们可以理解这个版本是11.4的TransMac,...
ffmpeg -framerate 10 -i %04d.jpg -filter_complex "[0]fade=t=out:st=0:d=1,fade=t=in:st=1:d=1[trans];[trans]format=yuv420p[v]" -map "[v]" -c:a copy output.mp4 ``` 这里`fade`过滤器实现了淡入淡出效果,`t...
《TransMac 14.4:Mac OS 镜像刻录的专业利器》 在数字化时代,数据存储和传输的方式多种多样,其中一种常见的格式就是Mac OS的.dmg镜像文件。这种文件类型广泛用于软件分发、系统备份以及跨平台的数据交换。然而,...
TransMac是一款专为Windows用户设计的软件,它允许用户方便地与Apple的Mac OS文件系统进行交互,包括读取、写入以及管理Mac格式化的磁盘和存储设备,如HFS、HFS+、APFS等。这个压缩包“TransMac 12.3.rar”包含了...
TransE算法是知识图谱表示学习领域的一种经典方法,它由Nicolas Usunier等人在2013年提出。该算法的主要目的是将实体和关系映射到一个低维向量空间,使得在这个空间中,关系可以被视为实体之间的翻译操作。这种直观...
"TransMac.v10.4 好用的黑苹果软件" 这个标题指出了我们讨论的核心是一款名为 TransMac 的软件,其版本号为 10.4。它被形容为“好用的黑苹果软件”,这暗示了TransMac是一款专门针对在非苹果(即Windows系统)环境下...
《 TranSE算法实现及测试详解 》 在知识图谱的研究与应用中,实体关系的表示学习是一项核心任务。TranSE(Translation-based Knowledge Graph Embedding)算法是其中的一种经典模型,它通过向量空间中的翻译操作来...
TransMAC12.2是一个在Windows下写入苹果镜像的软件,一般用于将原版MacOS原版镜像烧录到U盘,安装黑苹果必备,这个最新的12.2破解版,解压后替换主文件即可完成破解
transmac 10.3 注册版,在Win下访问Mac分区并操作的软件 高于这个版本的找不到序列号
TransMac11破解版 黑苹果安装专用 小白们来下载
《transMac:跨越平台的苹果系统管理利器》 在IT领域,尤其是在苹果用户群体中,transMac是一款不可或缺的工具,它允许Windows用户轻松地管理和处理Mac格式的硬盘、USB驱动器以及DMG映像文件。"transMac.zip"这个...
TransMac.11.0内附注册,在windows下制作mac的启动盘
"Trans-Formas"仪表操作涉及的是一个可能与数据转换、数据分析或监控系统相关的工具或技术。在IT行业中,仪表通常指的是用户界面中用于显示实时数据、指标或性能的图形化组件,它们常用于监控系统状态、业务表现或...
ieee trans 类文章总结 例如IEEE TRANSACTIONS ON ADVANCED PACKAGING ADVP IEEE Trans. Adv. Packag. CPMTB* IEEE Trans. Compon., Packag., Manuf. Technol. B* (1994–1998) IEEE TRANSACTIONS ON AEROSPACE ...
标题中的“黑苹果系统U盘制作工具TransMac121.zip”指的是用于在Windows操作系统上创建启动用USB驱动器的工具,特别适用于安装苹果的 macOS(通常被称为“黑苹果”系统,即非官方的苹果系统在非苹果硬件上运行)。...
TransMac 是一款MAC系统磁盘文件读取工具,可用于从苹果MAC系统磁盘拷贝文件到Windows计算机。TransMac支持读、写和格式化Macintosh高密度磁盘、CD-ROM以及SCSI光驱,主要可以支持长档案名、删除和复制目录树,以及...
先安装好TransMac,再把破解补丁解压到任意路径,运行后确认安装路径,点击Activate激活。激活后不要更新软件。
标题中的“TransMac制作苹果系统,格式化苹果分区”指的是使用TransMac这款软件来创建一个可用于安装Apple操作系统的启动U盘,并对Apple分区进行格式化的功能。TransMac是一款专为Windows用户设计的工具,它允许用户...
**描述分析:** "TransMac,TransMac,TransMac,TransMac,TransMac,TransMac,TransMac" 描述中的重复词"TransMac"强调了该主题的核心,即这个软件的重要性或其在功能上的专注。虽然没有提供具体细节,但可以...
TransMac是一款专为Windows用户设计的软件,用于方便地读取、写入及管理Macintosh格式的硬盘和光盘。这个工具在“黑苹果”(Hackintosh)领域中尤其重要,因为很多Windows用户想要访问或操作苹果Mac OS系统格式化的...