ffmpeg使用

有些选项在每个流中都必须指定,例如比特率bitrate或编解码codec。指定流的字符串一般都会有各参数名称和参数,如编解码"-codec:a:1 ac3"表明第二个流为音频流,使用ac3编码。有的选项可匹配多个流,如"-b:a 128k"指定音频比特率bitrate为128k。空的流选项适用于所有的流,如"-codec copy" 或"-codec: copy"将复制所有流且无需重新编码。流选项的形式可能为stream_index,如"-threads:1 4"将设置线程数为4的流为第二个流。stream_type[:stream_index],type的选项:'v'表示视频,'a'表示音频,'s'表示字幕,'d'表示数据,'t'为附件。p:program_id[:stream_index] ,如果给出stream_index,然后用ID 为program_id 的程序匹配流stream_index,否则匹配所有流。

从文件生成直播流:ffmpeg -i mv.mp4 -f flv udp://localhost:1234

示例:将输出视频比特率设为64kbit/s

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

示例:将输出视频帧率强制设置为24fps

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

ffmpeg 模拟udp流

ffmpeg -re -i /var/www/10.flv -vcodec mpeg4 -f mpegts udp://localhost:1234

接收流

ffmpeg -y -i udp://localhost:1234  v.yuv (-f rawvideo -pix_fmt uyvy422)

参数:

-i --- 输入,可以为文件或流地址

-f ---视频格式

-version ---版本号-L -h

-formats 显示所有可用的格式,D为解码,E为编码

-codecs ---显示可用的编解码,V:video,A:audio,S:subtitle codec

-bsfs ---显示可用的比特流过滤器bitstream filters

-protocols ---显示支持的协议

-pix_fmts ---显示可用的像素格式pixel formats

-sample_fmts ---显示可用的样本格式

-loglevel | -v loglevel ---设置log级别:quiet、panic、fatal、error、warning、info、verbose、debug,默认为stderr

-f fmt ---强制转换格式

-y ---如输出文件已存在则覆盖原有文件

-t ---时长,传输/捕获视频的时长,以秒为单位,也支持"hh:mm:ss[.xxx]"

-fs ---设置文件大小限制file size

-ss ---位置,查找给定的时间点,以秒为单位,也支持"hh:mm:ss[.xxx]"

-itsoffset ---偏移量,设置输入时间的偏移量,以秒为单位,也支持"hh:mm:ss[.xxx]"

-timestamp time,时间戳,格式:now|([(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH[:MM[:SS[.m...]]])|(HH[MM[SS[.m...]]]))[Z|z]),加z表示使用本地时间。

-metadata key=value,设置属性,如设置输出文件的title:ffmpeg -i in.avi -metadata title="my title" out.flv

-v number,设置日志verbosity级别

-target type,目标文件的type:("vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd", ... ),如:ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg || ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg

-dframes number,

-scodec codec,强制对subtitle进行编码

-newsubtitle ,添加新的subtitle

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

stream.

视频选项

-b
bitrate 设置比特率,缺省200kb/s

-r
fps 设置帧频缺省25

-s
size 设置帧大小格式为WXH
缺省160X128.下面的简写也可以直接使用:
Sqcif
128X96 qcif 176X144 cif 352X288 4cif 704X576 16cif 1408x1152 qqvga
160x120 qvga 320x240 vag 640x480 svga 800x600 xga 1024x768
uxga 1600x1200 qxga2048x1536

-aspect
aspect 设置横纵比4:3
16:9 或1.3333
1.7777

-croptop
size 设置顶部切除带大小像素单位

-cropbottom
size -cropleft size -cropright size

-padtop
size 设置顶部补齐的大小像素单位

-padbottom
size -padleft size -padright size -padcolor color
设置补齐条颜色(hex,6个16进制的数,红:绿:兰排列,比如000000代表黑色)

-vn
不做视频记录disable video recording

-bt
tolerance 设置视频码率容忍度kbit/s

-maxrate
bitrate设置最大视频码率容忍度

-minrate
bitreate 设置最小视频码率容忍度

-bufsize
size 设置码率控制缓冲区大小

-vcodec
codec 强制使用codec编解码方式。如果用copy表示原始编解码数据必须被拷贝。

-sameq
使用同样视频质量作为源(VBR)same
quantizer

-pass
n 选择处理遍数(1或者2)。两遍编码非常有用。第一遍生成统计信息,第二遍生成精确的请求的码率

-passlogfile
file 选择两遍的纪录文件名为file

-newvideo
,添加新的视频流到当前输出流

高级视频选项

-pix_fmt
format,使用‘list’查看可用像素格式项

-g
gop_size 设置图像组大小

-intra
仅适用帧内编码

-qscale
q 使用固定的视频量化标度(VBR)

-qmin
q 最小视频量化标度(VBR)

-qmax
q 最大视频量化标度(VBR)

-qdiff
q 量化标度间最大偏差(VBR)

-qblur
blur 视频量化标度柔化(VBR)

-qcomp
compression 视频量化标度压缩(VBR)

-rc_init_cplx
complexity 一遍编码的初始复杂度

-b_qfactor
factor 在p和b帧间的qp因子

-i_qfactor
factor 在p和i帧间的qp因子

-b_qoffset
offset 在p和b帧间的qp偏差

-i_qoffset
offset 在p和i帧间的qp偏差

-rc_eq
equation 设置码率控制方程默认tex^qComp

-rc_override
override 特定间隔下的速率控制重载

-me
method 设置运动估计的方法可用方法有zero
phods log x1 epzs(缺省)
full

-dct_algo
algo 设置dct的算法可用的有0
FF_DCT_AUTO 缺省的DCT
1 FF_DCT_FASTINT 2 FF_DCT_INT 3 FF_DCT_MMX 4 FF_DCT_MLIB 5

FF_DCT_ALTIVEC

-idct_algo
algo 设置idct算法。可用的有0
FF_IDCT_AUTO 缺省的IDCT
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 设置错误残留为n
1 FF_ER_CAREFULL 缺省2
FF_ER_COMPLIANT 3 FF_ER_AGGRESSIVE 4 FF_ER_VERY_AGGRESSIVE

-ec
bit_mask 设置错误掩蔽为bit_mask,该值为如下值的位掩码1
FF_EC_GUESS_MVS (default=enabled) 2 FF_EC_DEBLOCK (default=enabled)

-bf
frames 使用frames
B 帧,支持mpeg1,mpeg2,mpeg4

-mbd
mode 宏块决策0
FF_MB_DECISION_SIMPLE 使用mb_cmp
1 FF_MB_DECISION_BITS 2 FF_MB_DECISION_RD

-4mv
使用4个运动矢量仅用于mpeg4

-part
使用数据划分仅用于mpeg4

-bug
param 绕过没有被自动监测到编码器的问题

-strict
strictness 跟标准的严格性

-aic
使能高级帧内编码h263+

-umv
使能无限运动矢量h263+

-deinterlace
不采用交织方法

-interlace
强迫交织法编码仅对mpeg2和mpeg4有效。当你的输入是交织的并且你想要保持交织以最小图像损失的时候采用该选项。可选的方法是

不交织,但是损失更大

-psnr
计算压缩帧的psnr

-vstats
输出视频编码统计到vstats_hhmmss.log

-vhook
module 插入视频处理模块module
包括了模块名和参数,用空格分开

音频选项

-ab
bitrate 设置音频码率

-ar
freq 设置音频采样率

-ac
channels 设置通道缺省为1

-an
不使能音频纪录

-acodec
codec 使用codec编解码

音频/视频捕获选项

-vd
device 设置视频捕获设备。比如/dev/video0

-vc
channel 设置视频捕获通道DV1394专用

-tvstd
standard 设置电视标准NTSC
PAL(SECAM)

-dv1394
设置DV1394捕获

-av
device 设置音频设备比如/dev/dsp

高级选项

-map
file:stream 设置输入流映射

-debug
打印特定调试信息

-benchmark
为基准测试加入时间

-hex
倾倒每一个输入包

-bitexact
仅使用位精确算法用于编解码测试

-ps
size 设置包大小,以bits为单位

-re
以本地帧频读数据,主要用于模拟捕获设备

-loop
循环输入流。只工作于图像流,用于ffserver测试

-title
string 设置标题

-author
string 设置作者

-copyright
string 设置版权

-comment
string 设置评论

-hq
激活高质量设置

ffmepg命令行参数的更多相关文章

  1. python处理命令行参数

    直接从命令行执行py文件的时候如果带有参数,如何获取这些参数,如何解析? http://blog.chinaunix.net/uid-20786165-id-3182268.html sys.argv ...

  2. .NET Core采用的全新配置系统[5]: 聊聊默认支持的各种配置源[内存变量,环境变量和命令行参数]

    较之传统通过App.config和Web.config这两个XML文件承载的配置系统,.NET Core采用的这个全新的配置模型的最大一个优势就是针对多种不同配置源的支持.我们可以将内存变量.命令行参 ...

  3. Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数

    特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数是$1,第二个参数是$2. $# 传递给脚本或函数的参数个数. $* 传 ...

  4. powershell脚本,命令行参数传值,并绑定变量的例子

    这是小技巧文章,所以文章不长.但原创唯一,非常重要.我搜了下,还真没有人发 powershell怎样 [命令行 参数 绑定],所以我决定写成博客. 搜索关键字如下: powershell 命令行 参数 ...

  5. VS2013 带命令行参数的调试问题 解决方案

    int main(int argc,char* argv[]) argc是命令行总的参数个数,argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数 比如:  ...

  6. 使用getopt()处理命令行参数

    假设有一程序 testopt,其命令行选项参数有: -i            选项 -l            选项 -r           选项 -n <值> 带关联值的选项 则处理 ...

  7. 7z命令行参数中的路径

    最近在自动化的过程中用到了7z命令行工具,发现其参数中的路径挺有意思的,在此总结一下.本文中所有demo使用的7z版本为:15.14 x64. 压缩某个文件夹 下面的命令会把g:\temp\目录和目录 ...

  8. [转]Python 命令行参数和getopt模块详解

    FROM : http://www.tuicool.com/articles/jaqQvq 有时候我们需要写一些脚本处理一些任务,这时候往往需要提供一些命令行参数,根据不同参数进行不同的处理,在Pyt ...

  9. 你可能不知道的Google Chrome命令行参数

    概述:              关于Google Chrome命令行参数(英文叫Google Chrome Command line switches),是Chrome为了实现实验性功能.方便调试. ...

随机推荐

  1. leetcode 合并区间

    使用最简单的排序方法: /** * Definition for an interval. * public class Interval { * int start; * int end; * In ...

  2. Linux2.6内核--中断线被关闭的情况

          中断系统是现代操作系统中不可获取的一个子系统,它由硬件主动触发并发送到CPU,最后由内核调用中断处理程序处理中断.       那么中断有时候需要关闭,这是为什么呢?       一般分为 ...

  3. IntelliJ IDEA自用快捷键 转载

    最常用快捷键- 未分类 command Binding Description defeat - Ctrl+/ 代码提示 No - Ctrl+Alt+L 格式化代码   - Ctrl+B 快速打开光标 ...

  4. (转)Google Fonts 的介绍与使用

    转载自“前端笔记”  http://www.cnblogs.com/milly/archive/2013/05/10/google-fonts.html Google Fonts 是什么?(以下翻译为 ...

  5. [AngularJS + Webpack] Uglifying your JavaScript

    Angular requires some careful consideration when uglifying your code because of how angular's depend ...

  6. Thread和Runnable差别

    继承Thread类的,我们相当于拿出三件事即三个卖票10张的任务分别分给三个窗体,他们各做各的事各卖各的票各完毕各的任务.由于MyThread继承Thread类.所以在new MyThread的时候在 ...

  7. 关于弹出层(iframe)时刷新页面的js

    [javascript] view plaincopyprint? iframe弹出子页面刷新父页面iframe parent.location.reload(); [javascript] view ...

  8. iOS图片压缩

    项目中常会遇到,上传图片的操作,由于iPhone手机直接拍照的图片往往比较大,一般3-4M,如果直接上传不做处理会浪费用户很多流量,再者有很多场景并不需要高清图片,所以在上传图片前对图片进行压缩,是很 ...

  9. 【bzoj2938】[Poi2000]病毒

    题目描述 二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码.如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的.现在委员会已经找出了所有的病毒代码段,试问,是否 ...

  10. transition的四个属性

    transition-property 规定设置过渡效果的 CSS 属性的名称. transition-duration 规定完成过渡效果需要多少秒或毫秒. transition-timing-fun ...