ffmpeg高质量参数 (ffmpeg opengl)

最新参数以官方文档为准。本文档中部份参数可能已过时

列表参数是通过互联网收集整理,如参数在实际使用过程中存在问题,请移步:https://ffmpeg.org/ffmpeg.html 查看官方文档说明

基础选项

参数名

描述

-L

license

-h

帮助

-fromats

显示可用的格式,编解码的,协议的...

-f

fmt 强迫采用格式fmt

-I

filename 输入文件

-y

覆盖输出文件

-c

[: stream_specifier ] codec (* input/output,per-stream *)

-t

duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持, 例如: 指定操作的持续时间("-t 0.01"相当于取原视频中的第10s~10.01秒) , 一般用于截取视频使用, 而不是用在截图上.

-i

输入您要处理的视频文件路径,例如:ffmpmg -i pingcap-xxx.mp4

-fs

设置文件大小上限

-ss

position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持, 是指视频*放播**的时间进度

-title

string 设置标题

-author

string 设置作者

-copyright

string 设置版权

-comment

string 设置评论

-timestamp

时间戳

-album

album名

-v

与log相关的

-target

type 设置目标文件类型(vcd,svcd,dvd) 所有的格式选项(比特率,编解码以及缓冲区大小)自动设置, 只需要输入如下的就可以了:ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg

-hq

激活高质量设置

-itsoffset

offset 设置以秒为基准的时间偏移,该选项影响所有后面的输入文件。该偏移被加到输入文件的时戳,定义一个 正偏移意味着相应的流被延迟了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支持

-dframes

设置要记录的帧数

视频选项

常规参数

参数名

描述

-b

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

-bitexact

使用标准比特率

-r

帧速率(fps 设置帧频 缺省25,可以改,确认非标准桢率会导致音画不同步,所以只能设定为15或者29.97)

-s

size 设置帧大小 格式为WXH 缺省160X128.下面的简写也可以直接使用:Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576

-aspect

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

-croptop

设置顶部切除尺寸(in pixels)

-cropbottom

设置底部切除尺寸(in pixels)

-cropleft size

设置左切除尺寸 (in pixels)

-cropright size

设置右切除尺寸 (in pixels)

-padtop

设置顶部补齐尺寸(in pixels) 像素单位

-padbottom

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

-padleft size

左补齐(in pixels)

-padright size

右补齐(in pixels)

-padcolor color

补齐带颜色(000000-FFFFFF)

-vn

不做视频记录(取消视频)

-bt

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

-maxrate

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

-minrate

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

-bufsize

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

-vcodec

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

-sameq

使用同样视频质量作为源(VBR)

-pass

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

-passlogfile

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

-vb

指定视频比特率(bits/s)

-vframes number

设置转换多少桢(frame)的视频

-newvideo

在现在的视频流后面加入新的视频流

高级参数

参数名

描述

-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有效。当你的输入是交织的并且你想要保持交织以最小图像损失的时候采用该选项。 可选的方法是不交织,但是损失更大

-pix_fmt

format set pixel format, 'list' as argument shows all the pixel formats supported

-psnr

计算压缩帧的psnr

-vstats

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

-vhook

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

-intra

仅适用帧内编码

-qscale

q 以<数值>质量为基础的VBR,取值0.01-255,约小质量越好

-loop_input

设置输入流的循环数(目前只对图像有效)

-loop_output

设置输出视频的循环数,比如输出gif时设为0表示无限循环

-g

int 设置图像组大小

-cutoff

int 设置截止频率

-qmin

int 设定最小质量,与-qmax(设定最大质量)共用,比如-qmin 10 -qmax 31

-qmax

int 设定最大质量

-qdiff

int 量化标度间最大偏差 (VBR)

-bf

int 使用frames B 帧,支持mpeg1,mpeg2,mpeg4

音频选项

参数名

描述

-ab

设置比特率(单位:bit/s,也许老版是kb/s)前面-ac设为立体声时要以一半比特率来设置,比如192kbps的就设成96, 转换 默认比特率都较小,要听到较高品质声音的话建议设到160kbps(80)以上。

-ar

设置音频采样率 (单位:Hz),PSP只认24000

-ac

设置声道数,1就是单声道,2就是立体声,转换单声道的TVrip可以用1(节省一半容量),高品质的DVDrip就可以用2, 缺省为1

-an

取消音频

-acodec

指定音频编码('copy' to copy stream)

-aframes

设置转换多少桢(frame)的音频

-aq

设置音频质量 (指定编码)

-vol volume

设置录制音量大小(默认为256) <百分比> ,某些DVDrip的AC3轨音量极小,转换时可以用这个提高音量,比如200就是原来的2倍

-newaudio

在现在的音频流后面加入新的音频流

字幕选项

参数名

描述

-sn

取消字幕

-scodec codec

设置字幕编码('copy' to copy stream)

-newsubtitle

在当前字幕后新增

-slang code

设置字幕所用的ISO 639编码(3个字母)

音频/视频捕获选项

常规参数

参数名

描述

-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测试)

示例1

 # 示例1 
 ffmpeg*ex.e** 10 -i possible.mkv test.jpg
 # 示例2
 ffmpeg*ex.e** -ss 10 -i possible.mkv -y -f image2 -t 0.01 0.jpg
 # 示例3
 ffmpeg*ex.e** -ss 00:00:10 -i possible.mkv -y -f image2 -frames:v 1 test.jpg

-i: 选择输入文件, 如"-i possible.mkv"是指定ffmpeg*ex.e**输入的媒体文件为possible.mkv -ss: 选择开始时间, 如"-ss 10"是将视频指向10秒, 也就是从10秒开始 -y: 强制覆盖文件(防止因为重名出错) -f: 指定输出的文件格式, 如"-f image2" -t: 指定操作的持续时间("-t 0.01"相当于取原视频中的第10s~10.01秒), 一般用于截取视频使用, 而不是用在截图上.

"-frames:v 1" for a single image 用于替换-t选项, 上面的-t选项在截图中使用是不合理的. 该操作可以指定1张图片 test.jpg // 为输出文件

示例2

 ffmpeg -i ${input_video} -vcodec copy -an -f flv rtmp://${server}/live/${streamName}
  • -vcodec : 指定视频解码器, v 是指视频(video), code 指解码器,后面跟解码器名称, copy 表示不作解码;
  • -acodec: 指音频解码器, a 是指音频(audio), 后面跟解码器名称,an 代表 audio none , node 代表去掉音频。