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. 在Eclipse中格式化Android代码

    我们用Eclipse做Android开发的时候,可以导入Google提供的profile文件,这样每次"Ctrl+Shift+F"的时候,IDE就能够按照官方的规范来进行代码格式化 ...

  2. UVa10047 The Monocycle

    UVa10047 The Monocycle 链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19491 (以上摘自htt ...

  3. MySQL生僻字(不常用字)的完整解决方案

    查看 MySQL 数据库服务器和数据库字符集 show variables like '%char%'; 查看 MySQL 数据表(table) 的字符集 show table status from ...

  4. [Java] Java IO Files

    Files 使用 FileInputStream 或 FileReader 可以用于读入文件,前者基于二进制,后者基于文本.使用它们不需要读取整个文件,但是只能按照它们存储的顺序,依次读取字节,或字符 ...

  5. 回某位朋友问题备受phpcgi.exe煎熬现在cpu跑满(解决方案)

    (本文原创,但是cgi参数参考一个大神写的针对小服务器的,希望大家积极投票哦) 下面是对php-cgi.ext过多引起服务器cup%的解决方法,希望对大家有帮助;大多数情况是发生在第四项上;   解决 ...

  6. Spring AOP + AspectJ Annotation Example---reference

    In this tutorial, we show you how to integrate AspectJ annotation with Spring AOP framework. In simp ...

  7. iOS--NSAttributedString使用介绍

    iOS–NSAttributedString使用介绍 原文见: http://www.itnose.net/detail/6177538.html http://***/html/topnews201 ...

  8. FaceBook要在视频领域打败YouTube?

    据<纽约时报>报道,FaceBook正在探索一项新的策略来直接把音乐视频嵌入到用户的News Feeds中.目前,具有代表性的视频网站有YouTube和Vimeo,它们可以在社交网络上分享 ...

  9. Configuring Robolectric

    There are numerous ways to customize how Robolectric behaves at runtime. Config Annotation The prima ...

  10. 蓝牙代理报错:invalid handle error

    错误症状: -(void)peripheral:(CBPeripheral *)peripheral didUpdateNotificationStateForCharacteristic:(CBCh ...