FFplay文档解读-4-编解码器选项一
6.编解码器选项
libavcodec
提供了一些通用的全局选项,可以在所有编码器和解码器上设置。 此外,每个编解码器可以支持所谓的私有选项,这些选项特定于给定的编解码器。
有时,全局选项可能只会影响特定类型的编解码器,并且可能是荒谬的或被其他人忽略,因此需要了解指定选项的含义。 还有一些选项仅用于解码或编码。
可以通过在FFmpeg工具中指定-option
值,或通过在AVCodecContext
选项中显式设置值或使用“libavutil / opt.h”
API进行编程来设置选项。
支持的选项列表如下:
b integer (encoding,audio,video)
以bit/s
为单位设置比特率。 默认值为200K
。
ab integer (encoding,audio)
设置音频比特率(以位/秒为单位)。 默认值为128K
。
bt integer (encoding,video)
设置视频比特率容差(以位/秒为单位)。 在1
遍模式中,比特率容差指定速率控制愿意偏离目标平均比特率值的程度。 这与最小/最大比特率无关。 降低公差太大会对质量产生不利影响。
flags flags (decoding/encoding,audio,video,subtitles)
设置通用标志。
免费学习地址:https://ke.qq.com/course/3202131?flowToken=1042495
【文章福利】免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~
可能的取值如下:
值 | 解释 |
---|---|
mv4 |
按宏块使用四个运动矢量(mpeg4 )
|
qpel |
使用1/4 像素运动补偿
|
loop | 使用循环过滤器 |
qscale |
使用固定的qscale
|
pass1 |
在第一次通过模式下使用内部2pass 速率控制
|
pass2 |
在第二次通过模式下使用内部2pass 速率控制
|
gray | 仅解码/编码灰度 |
emu_edge | 不要描边 |
psnr |
在编码期间设置error[?] 变量
|
truncated | |
ildct |
使用隔行扫描DCT
|
low_delay | 强制低延迟 |
global_header |
将全局标头放在extradata 而不是每个关键帧中
|
bitexact |
仅编写平台,构建和时间无关的数据。 (除了(I)DCT )。 这可确保文件和数据校验和可重现并在平台之间匹配。 它的主要用途是进行回归测试
|
aic |
应用H263 高级帧内编码/ mpeg4交流预测
|
cbp |
不推荐使用,请改用mpegvideo 私有选项
|
qprd |
不推荐使用,请改用mpegvideo 私有选项
|
ilme | 应用隔行扫描运动估计 |
cgop |
使用封闭的gop
|
me_method integer (encoding,video)
设置运动估计方法。
可能的取值如下:
值 | 解释 |
---|---|
zero | 零运动估计(最快) |
full | 全运动估计(最慢) |
epzs |
EPZS 运动估计(默认)
|
esa |
esa 运动估计(别名为完整)
|
tesa | 德莎运动估计 |
dia |
dia 运动估计(epzs 的别名)
|
log | 对数运动估计 |
phods | phods运动估计 |
x1 |
X1 运动估计
|
hex | 十六进制运动估计 |
umh | umh运动估计 |
iter |
iter 运动估计
|
extradata_size integer
设置extradata
大小。
time_base rational number
设置编解码器时基。
它是表示帧时间戳的基本时间单位(以秒为单位)。 对于固定fps
内容,时基应为1 / frame_rate
,时间戳增量应相同为1
。
g integer (encoding,video)
设置图片组(GOP)
大小。 默认值为12
。
ar integer (decoding/encoding,audio)
设置音频采样率(Hz)
。
ac integer (decoding/encoding,audio)
设置音频通道数。
cutoff integer (encoding,audio)
设置截止带宽。 (仅受选定编码器支持,请参阅各自的文档部分。)
frame_size integer (encoding,audio)
设置音频帧大小。
除最后一个之外的每个提交的帧必须包含每个通道的frame_size
样本。 当编解码器设置了CODEC_CAP_VARIABLE_FRAME_SIZE
时,可能为0
,在这种情况下,帧大小不受限制。 它由一些解码器设置以指示恒定的帧大小。
frame_number integer
设置帧编号。
delay integerqcomp float (encoding,video)
设置视频量化器比例压缩(VBR)
。 它在速率控制方程中用作常数。 默认rc_eq
的推荐范围:0.0-1.0
。
qblur float (encoding,video)
设置视频量化器比例模糊(VBR)
。
qmin integer (encoding,video)
设置最小视频量化比例(VBR)
。 必须包含在-1
和69
之间,默认值为2
。
qmax integer (encoding,video)
设置最大视频量化器比例(VBR)。 必须包含在-1
和1024
之间,默认值为31
。
qdiff integer (encoding,video)
设置量化器标度(VBR)
之间的最大差异。
bf integer (encoding,video)
设置非B
帧之间的最大B
帧数。
必须是-1
到16
之间的整数。0
表示禁用B
帧。 如果使用值-1
,它将根据编码器选择自动值。
默认值为0
。
b_qfactor float (encoding,video)
在P
帧和B
帧之间设置qp
因子。
rc_strategy integer (encoding,video)
设置ratecontrol
方法。
b_strategy integer (encoding,video)
设置策略以在I/P/B
帧之间进行选择。
ps integer (encoding,video)
以字节为单位设置RTP
有效负载大小。
mv_bits integerheader_bits integeri_tex_bits integerp_tex_bits integeri_count integerp_count integerskip_count integermisc_bits integerframe_bits integercodec_tag integerbug flags (decoding,video)
解决方法不自动检测编码器错误。
可能的取值:
值 | 解释 |
---|---|
autodetect | |
old_msmpeg4 |
一些旧的lavc 生成了msmpeg4v3 文件(没有自动检测)
|
xvid_ilace |
Xvid 隔行扫描错误(如果fourcc == XVIX ,则自动检测)
|
ump4 |
(如果fourcc == UMP4 ,则自动检测)
|
no_padding | 填充错误(自动检测) |
amv | |
ac_vlc |
非法vlc 错误(每四个自动检测)
|
qpel_chroma | |
std_qpel |
旧标准qpel (每个四分之一版本自动检测)
|
qpel_chroma2 | |
direct_blocksize |
direct-qpel-blocksize bug (根据fourcc/version 自动检测)
|
edge |
边缘填充错误(每个fourcc / 版本自动检测)
|
hpel_chroma | |
dc_clip | |
ms | 解决微软破解解码器中的各种错误。 |
trunc | 截断的帧 |
lelim integer (encoding,video)
设置亮度的单个系数消除阈值(负值也考虑DC
系数)。
celim integer (encoding,video)
设置色度的单个系数消除阈值(负值也考虑直流系数)。
strict integer (decoding/encoding,audio,video)
指定严格遵守标准的程度。
可能的结果如下:
值 | 解释 |
---|---|
very | 严格遵守较旧的更严格版本的规范或参考软件 |
strict | 无论后果如何,严格遵守规范中的所有内容 |
normal | |
unofficial | 允许非官方扩展 |
experimental | 允许非标准化的实验性事物,实验性(未完成/正在进行/未经过充分测试)解码器和编码器。 注意:实验解码器可能会带来安全风险,请勿使用此解码器来解码不受信任的输入 |
b_qoffset float (encoding,video)
设置P
帧和B
帧之间的QP
偏移。
err_detect flags (decoding,audio,video)
设置错误检测标志。
可能的取值如下:
值 | 解释 |
---|---|
crccheck |
验证嵌入式CRC
|
bitstream | 检测比特流规范偏差 |
buffer | 检测不正确的比特流长度 |
explode | 在小错误检测中中止解码 |
ignore_err | 忽略解码错误,并继续解码。 如果想分析视频内容并因此希望无论如何都要解码所有内容,这将非常有用。 如果出现错误,此选项不会产生令人满意的视频 |
careful | 考虑违反规范的事情,并且没有在野外看到错误 |
compliant | 将所有规范非合规性视为错误 |
aggressive | 考虑一个理智的编码器不应该做的错误 |
has_b_frames integerblock_align integermpeg_quant integer (encoding,video)
使用MPEG
量化器代替H.263
。
qsquish float (encoding,video)
如何在qmin和qmax之间保持量化器(0 =clip
,1 =use differentiable function
)。
rc_qmod_amp float (encoding,video)
设置实验量化器调制。
rc_qmod_freq integer (encoding,video)
设置实验量化器调制。
rc_override_count integerrc_eq string (encoding,video)
设定速率控制方程。 在计算表达式时,除了“表达式评估”部分中定义的标准函数外,还提供以下函数:bits2qp(bits),qp2bits(qp)
。 此外,还有以下常量:iTex pTex tex mv fCode iCount mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex avgTex
。
maxrate integer (encoding,audio,video)
设置最大比特率容差(以位/秒为单位)。 需要设置bufsize
。
minrate integer (encoding,audio,video)
设置最小比特率容差(以位/秒为单位)。 在设置CBR
编码时最有用。 它没有什么用处。
bufsize integer (encoding,audio,video)
设置速率控制缓冲区大小(以位为单位)。
rc_buf_aggressivity float (encoding,video)
目前没用。
i_qfactor float (encoding,video)
在P
帧和I
帧之间设置QP
因子。
i_qoffset float (encoding,video)
设置P
和I
帧之间的QP
偏移。
rc_init_cplx float (encoding,video)
设置1
遍编码的初始复杂度。
dct integer (encoding,video)
设置DCT算法。
可能的取值如下:
值 | 解释 |
---|---|
auto | 自动选择一个好的(默认) |
fastint |
fast integer
|
int | 准确的整数 |
mmx | |
altivec | |
faan |
浮点AAN DCT
|
lumi_mask float (encoding,video)
压缩明亮区域比中等区域强。
tcplx_mask float (encoding,video)
设置时间复杂度掩蔽。
scplx_mask float (encoding,video)
设置空间复杂度掩蔽。
p_mask float (encoding,video)
设置屏蔽间隔。
dark_mask float (encoding,video)
压缩比中等强度的黑暗区域。
idct integer (decoding/encoding,video)
选择IDCT
实施。
可能的取值如下:
值 | 解释 |
---|---|
auto | |
int | |
simple | |
simplemmx | |
simpleauto |
自动选择与简单IDCT 兼容的IDCT
|
arm | |
altivec | |
sh4 | |
simplearm | |
simplearmv5te | |
simplearmv6 | |
simpleneon | |
simplealpha | |
ipp | |
xvidmmx | |
faani |
浮点AAN IDCT
|
slice_count integerec flags (decoding,video)
设置错误隐藏策略。
可能的取值如下:
值 | 解释 |
---|---|
guess_mvs |
迭代运动矢量(MV) 搜索(慢)
|
deblock |
使用强deblock 过滤器来修复损坏的MB
|
favor_inter | 倾向于从前一帧而不是当前帧预测 |
bits_per_coded_sample integerpred integer (encoding,video)
设定预测方法。
可能的取值如下:
值 |
---|
left |
plane |
median |
aspect rational number (encoding,video)
设置样本宽高比。
sar rational number (encoding,video)
设置样本宽高比。 方面的别名。
debug flags (decoding/encoding,audio,video,subtitles)
打印特定的调试信息。
可能的取值如下:
值 | 解释 |
---|---|
pict | 图片信息 |
rc | 速率控制 |
bitstream | |
mb_type |
宏块(MB) 类型
|
qp |
每块量化参数(QP)
|
dct_coeff | |
green_metadata |
显示即将到来的帧,GoP 或给定持续时间的复杂性元数据。
|
skip | |
startcode | |
er | 错误识别 |
mmco |
内存管理控制操作(H.264)
|
bugs | |
buffers | 图片缓冲区分配 |
thread_ops | 线程操作 |
nomc | 跳过运动补偿 |
cmp integer (encoding,video)
设置完全比较功能。
可能的取值如下:
值 | 解释 |
---|---|
sad | 绝对差值之和,快速(默认) |
sse | 平方误差之和 |
satd |
绝对Hadamard 的总和改变了差异
|
dct |
绝对DCT 转换差异的总和
|
psnr |
量化误差平方和(avoid, low quality)
|
bit | 块所需的位数 |
rd | 速率失真最佳,速度慢 |
zero |
0
|
vsad | 绝对垂直差异之和 |
vsse | 垂直差异的平方和 |
nsse | 噪声保持平方差的总和 |
w53 |
5/3 小波,仅用于snow 场景
|
w97 |
9/7 小波,仅用于snow 场景中
|
dctmax | |
chroma |
FFplay文档解读-4-编解码器选项一相关推荐
- FFplay文档解读-13-设备选项,输入设备一
17.设备选项 libavdevice库提供与libavformat相同的接口. 即,输入设备被视为分路器,输出设备如复用器,接口和通用设备选项与libavformat相同(参见ffmpeg-form ...
- FFplay文档解读-5-编解码器选项二
设置sub pel me比较功能. 可能的取值如下: 值 解释 sad 绝对差值之和,fast(默认) sse 平方误差之和 satd 绝对Hadamard的总和改变了差异 dct 绝对DCT转换差异 ...
- FFplay文档解读-46-视频源,视频接收器
30. 视频源 以下是当前可用视频源的说明. 30.1 buffer 缓冲视频帧,并使其可用于过滤器链. 该源主要用于编程用途,特别是通过'libavfilter/vsrc_buffer.h'中定义的 ...
- FFplay文档解读-22-音频过滤器七
26.60 loudnorm EBU R128响度归一化.包括动态和线性归一化模式.支持单通道(直播,文件)和双通(文件)模式.该算法可以针对IL,LRA和最大真实峰值.为了准确地检测真实峰值,音频流 ...
- FFplay文档解读-41-视频过滤器十六
29.150 selectivecolor 将青色,品红色,黄色和黑色(CMYK)调整为特定颜色范围(例如"reds","yellows","gree ...
- FFplay文档解读-47-多媒体过滤器一
32. 多媒体过滤器 以下是当前可用的多媒体过滤器的说明. 32.1 abitscope 将输入音频转换为视频输出,显示音频位范围. 过滤器接受以下选项: rate,r 设置帧速率,表示为每秒帧数. ...
- FFplay文档解读-7-比特流过滤器
11.比特流过滤器 配置FFmpeg构建时,默认情况下会启用所有支持的比特流过滤器. 您可以使用configure选项--list-bsfs列出所有可用的列表. 可以使用configure选项--di ...
- FFplay文档解读-6-解码器,视频解码器,音频解码器,字幕解码器
7. 解码器 解码器是FFmpeg中配置的元素,允许解码多媒体流. 配置FFmpeg构建时,默认情况下会启用所有受支持的本机解码器. 必须通过相应的--enable-lib选项手动启用需要外部库的解码 ...
- FFplay文档解读-33-视频过滤器八
29.70 gblur 应用高斯模糊滤镜. 过滤器接受以下选项: sigma 设置水平西格玛,高斯模糊的标准偏差. 默认值为0.5. steps 设置高斯近似的步数. 默认值是1. planes 设置 ...
- FFplay文档解读-27-视频过滤器二
29.11 boxblur 将boxblur算法应用于输入视频. 它接受以下参数: luma_radius, lr luma_power, lp chroma_radius, cr chroma_po ...
最新文章
- php composer 无法下载,php – composer无法安装laravel / passport
- qt调用c语言编写的dll文件,Qt之调用外部DLL - moki_oschina的个人空间 - OSCHINA - 中文开源技术交流社区...
- 自学python需要安装什么软件-python自学需要什么软件?
- BZOJ 1603: [Usaco2008 Oct]打谷机
- Java 原生日志 java.util.logging
- matlab simulink_运用MATLAB和Simulink开发自动驾驶控制系统
- Flash/Flex学习笔记(30):不用startDrag和stopDrag的对象拖动
- GitHub 上 57 款最流行的开源深度学习项目【转】
- 学习Java编程equals()和hashCode()方法
- java lucene cms_JEECMSv6标签使用之[@cms_lucene_list]
- 软件测试包括哪些内容
- 有些公司的年会,还不如《天龙八部》的万仙大会
- 指纹识别技术的发展前景是怎样的?
- pyTest官方手册(Release 4.2)之蹩脚翻译(9)
- 独自美丽-西西里的美丽传说『by berta』
- Win7安全模式卡在ClassPNP.sys位置解决办法
- 苹果电子邮件怎么注册_忘记了Apple ID账号密码怎么办?超全攻略,帮你解决问题...
- CS硕士妹子找工作经历【阿里人搜等互联网公司】
- 电脑重启后鼠标和键盘不好使解决方案
- 斐讯音响突然走红,原来它的秘密是这个!
热门文章
- 机器人布里茨哪个皮肤好看_LOL全英雄皮肤盘点推荐D32:蒸汽机器人布里茨 苹果机器人...
- 新浪微博模拟登陆passwd参数rsa解密
- [语音处理] 声谱图(spectrogram)FBank(Mel_spectrogram)MFCC(Mel倒谱)到底用哪个作为NN输入?
- 遗传算法优化BP神经网络,bp神经网络的优化算法
- python 批量下载视频_Python一键批量下载抖音无水印视频
- [Pytorch系列-71]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix - 使用预训练模型训练pix2pix模型
- 360政企安全集团率先获得国家级安全运营资质
- Revel模板引擎Template基本语法
- 谷歌gmail注册入口_如何删除您的Gmail帐户而不删除您的Google帐户
- 项目引入船讯网海图插件