29.170 telecine

将电视电影处理应用于视频。

此过滤器接受以下选项:

first_field
选项 解释
top, t top field first
bottom, b 底部字段优先默认值为top
pattern

一串数字,表示希望应用的下拉模式。 默认值为23

Some typical patterns:NTSC output (30i):
27.5p: 32222
24p: 23 (classic)
24p: 2332 (preferred)
20p: 33
18p: 334
16p: 3444PAL output (25i):
27.5p: 12222
24p: 222222222223 ("Euro pulldown")
16.67p: 33
16p: 33333334

29.171 threshold

将阈值效果应用于视频流。

此过滤器需要四个视频流才能执行阈值处理。 第一个流是我们正在过滤的流。 第二流保持阈值,第三流保持最小值,最后,第四流保持最大值。

过滤器接受以下选项:

planes

设置要处理的平面,将复制未处理的平面。 默认值为0xf,将处理所有平面。

例如,如果第一流像素的分量值小于来自第二阈值流的像素分量的阈值,则将拾取第三流值,否则将拾取第四流像素分量值。

使用颜色源过滤器可以执行各种类型的阈值处理:

29.171.1 示例

  • 二进制阈值,使用灰色作为阈值:

      ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
    
  • 反转二进制阈值,使用灰色作为阈值:

      ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
    
  • 截断二进制阈值,使用灰色作为阈值:

      ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
    
  • 阈值为零,使用灰色作为阈值:

      ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
    
  • 使用灰色作为阈值将反转阈值设置为零:

      ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
    

学习地址:音视频新手快速入门必备系列-FFmpeg+SDL播放器开发实现-学习视频教程-腾讯课堂
【文章福利】免费领取更多音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击1079654574加群领取哦~

29.172 thumbnail

在给定的连续帧序列中选择最具代表性的帧。

过滤器接受以下选项:

n

设置帧批量大小进行分析; 在一组n帧中,过滤器将选择其中一个,然后处理下一批n帧直到结束。 默认值为100

由于过滤器会跟踪整个帧序列,因此较大的n值将导致较高的内存使用量,因此不建议使用较高的值。

29.172.1 示例

  • 50帧提取一张图片:

      thumbnail=50
    
  • 使用ffmpeg创建缩略图的完整示例:

      ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
    

29.173 tile

将几个连续的帧拼接在一起。

过滤器接受以下选项:

layout

设置网格大小(即行数和列数)。有关此选项的语法,请检查(ffmpeg-utils)视频大小语法。

nb_frames

设置给定区域中要渲染的最大帧数。它必须小于或等于wxh。默认值为0,表示将使用所有区域。

margin

设置外边框边距(以像素为单位)。

padding

设置内边框厚度(即帧之间的像素数)。有关更高级的填充选项(例如边缘的值不同),请参阅填充视频滤镜。

color

指定未使用区域的颜色。有关此选项的语法,请检查(ffmpeg-utils)颜色语法。颜色的默认值为"black"

overlap

将多个连续帧拼接在一起时,设置要重叠的帧数。该值必须介于0nb_frames -1之间。

init_padding

在显示第一个输出帧之前,将帧数设置为最初为空。这可以控制获得第一个输出帧的时间。该值必须介于0nb_frames -1之间。

29.173.1 示例

  • 在电影中制作所有关键帧('-skip_frame nokey')8x8 PNG图块:

      ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
    

'-vsync 0'是必要的,以防止ffmpeg复制每个输出帧以适应最初检测到的帧速率。

  • 使用混合平面和命名选项在3x2帧的区域中显示5张图片,其间有7个像素,初始边距为2像素:

      tile=3x2:nb_frames=5:padding=7:margin=2
    

29.174 tinterlace

执行各种类型的时域隔行扫描。

帧从1开始计数,因此第一个输入帧被视为奇数。

过滤器接受以下选项:

mode

指定隔行扫描的模式。 此选项也可以单独指定为值。 请参阅下文,了解此选项的值列表。

可用值包括:

merge, 0

将奇数帧移动到上部字段,甚至移动到下部字段,以半帧速率生成双倍高度帧。

------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 411111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444Output:
11111                           33333
22222                           44444
11111                           33333
22222                           44444
11111                           33333
22222                           44444
11111                           33333
22222                           44444

drop_even, 1

仅输出奇数帧,偶数帧被丢弃,生成半帧速率不变的帧。

------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 411111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444Output:
11111                           33333
11111                           33333
11111                           33333
11111                           33333

drop_odd, 2

仅输出偶数帧,丢弃奇数帧,生成半帧速率不变的帧。

------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 411111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444Output:22222                           4444422222                           4444422222                           4444422222                           44444

pad, 3

将每个帧扩展到全高,但用黑色填充交替行,以相同的输入帧速率生成具有双倍高度的帧。

------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 411111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444Output:
11111           .....           33333           .....
.....           22222           .....           44444
11111           .....           33333           .....
.....           22222           .....           44444
11111           .....           33333           .....
.....           22222           .....           44444
11111           .....           33333           .....
.....           22222           .....           44444

interleave_top, 4

将奇数帧的上场与偶数帧的下场交错,生成半帧率不变的帧。

------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 411111<-         22222           33333<-         44444
11111           22222<-         33333           44444<-
11111<-         22222           33333<-         44444
11111           22222<-         33333           44444<-Output:
11111                           33333
22222                           44444
11111                           33333
22222                           44444

interleave_bottom, 5

将奇数帧的下部场与偶数帧的上部场交织,生成半帧速率不变的帧。

------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 411111           22222<-         33333           44444<-
11111<-         22222           33333<-         44444
11111           22222<-         33333           44444<-
11111<-         22222           33333<-         44444Output:
22222                           44444
11111                           33333
22222                           44444
11111                           33333

interlacex2, 6

双帧速率,高度不变。 插入帧,每个帧包含来自前一输入帧的第二时间字段和来自下一输入帧的第一时间字段。 此模式依赖于top_field_first标志。 对于没有字段同步的隔行扫描视频显示很有用。

------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 411111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444Output:
11111   22222   22222   33333   33333   44444   44444
11111   11111   22222   22222   33333   33333   44444
11111   22222   22222   33333   33333   44444   44444
11111   11111   22222   22222   33333   33333   44444

mergex2, 7

将奇数帧移动到上部字段,甚至移动到下部字段,以相同的帧速率生成双倍高度的帧。

------> time
Input:
Frame 1         Frame 2         Frame 3         Frame 411111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444
11111           22222           33333           44444Output:
11111           33333           33333           55555
22222           22222           44444           44444
11111           33333           33333           55555
22222           22222           44444           44444
11111           33333           33333           55555
22222           22222           44444           44444
11111           33333           33333           55555
22222           22222           44444           44444

不推荐使用数字值,但出于向后兼容性原因,将接受这些值。

合并默认模式。

flags

指定影响过滤器进程的标志。

标志的可用值是:

low_pass_filter,vlfp

在滤波器中启用线性垂直低通滤波。 从包含高频垂直细节的渐进源创建隔行目标时,需要垂直低通滤波。 过滤将减少交错'twitter'和莫尔图案。

complex_filter,cvlfp

启用复杂的垂直低通滤波。 这将略微减少交织’twitter’和莫尔图案,但更好地保留细节和主观锐度印象。

垂直低通滤波只能用于'mode'interleave_topinterleave_bottom

29.175 tonemap

来自不同动态范围的色调图颜色。

此过滤器需要单精度浮点数据,因为它需要对(并且可以输出)超出范围的值进行操作。 需要另一个过滤器(如zscale)将结果帧转换为可用格式。

实现的色调映射算法仅适用于线性光,因此输入数据应预先线性化(并且可能正确标记)。

ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT

29.175.1 选项

过滤器接受以下选项。

tonemap

设置要使用的色调映射算法。

可能的值如下:

解释
none 不要应用任何色调映射,只能去饱和过亮像素
clip 硬剪辑任何超出范围的值。 使用它可以获得范围内值的完美颜色精度,同时扭曲超出范围的值
linear 将整个参考色域拉伸到显示器的线性倍数
gamma 在色调曲线之间进行对数转换
reinhard 使用非线性对比度,通过简单的曲线保持整体图像亮度,从而使细节变平并降低色彩精度
hable reinhard更好地保留黑暗和明亮的细节,代价是略微变暗一切。 当细节保存比颜色和亮度准确性更重要时使用它
mobius 平滑地绘制超出范围的值,同时尽可能保留范围内材料的对比度和颜色。 当颜色准确性比细节保存更重要时使用它

默认值是:none

param

调整色调映射算法。

这会影响以下算法:

算法 解释
none 忽视
linear 指定拉伸时使用的比例因子。 默认为1.0
gamma 指定函数的指数。 默认为1.8
clip 指定一个额外的线性系数,在剪切前乘以信号。 默认为1.0
reinhard 在显示峰值处指定局部对比度系数。 默认为0.5,这意味着色域内值约为剪切时的一半
hable 忽视
mobius 指定从线性到mobius变换的过渡点。 低于此点的每个值都保证以1:1映射。 值越高,结果越准确,代价是丢失明亮的细节。 默认为0.3,由于陡峭的初始斜率仍然相当准确地保留了范围内的颜色
desat

对超过此亮度级别的高光应用去饱和度。 参数越高,保留的颜色信息就越多。 此设置有助于防止超高光的不自然地被吹掉的颜色,通过(平滑地)变成白色。 这使得图像感觉更自然,但代价是减少了关于超出范围颜色的信息。

默认值2.0有点保守,主要适用于天空或直接阳光照射的表面。 设置为0.0将禁用此选项。

仅当输入框架具有受支持的颜色标记时,此选项才有效。

peak

使用此值覆盖signal/nominal/reference峰值。 当显示元数据中的嵌入峰值信息不可靠或者从较低范围到较高范围的色调映射时有用。

29.176 transpose

在输入视频中转置包含列的行,并可选择将其翻转。

它接受以下参数:

dir

指定转置方向。

可以假设以下值:

    0, 4, cclock_flip

  逆时针旋转90度并垂直翻转(默认),即:

    L.R L.l
    . . -> . .
    l.r R.r

    1, 5, clock

  顺时针旋转90度,即:

    L.R l.L
    . . -> . .
    l.r r.R

    2, 6, cclock

  逆时针旋转90度,即:

    L.R R.r
    . . -> . .
    l.r L.l

    3, 7, clock_flip

  顺时针和垂直翻转旋转90度,即:

    L.R r.R
    . . -> . .
    l.r l.L

对于介于4-7之间的值,仅在输入视频几何体为纵向而非横向时才进行换位。 不推荐使用这些值,而应使用passthrough选项。

不推荐使用数值,应该删除它们以支持符号常量。

passthrough

如果输入几何与指定值指定的几何匹配,则不应用转置。 它接受以下值:

none

始终应用换位。

portrait

保留纵向几何体(当高度>=宽度时)。

landscape

保留横向几何体(当宽度>=高度时)。

默认值为none

例如,顺时针旋转90度并保留纵向布局:

transpose=dir=1:passthrough=portrait

上面的命令也可以指定为:

transpose=1:portrait

29.177 trim

修剪输入,使输出包含输入的一个连续子部分。

它接受以下参数:

start

指定保留部分的开始时间,即具有时间戳开始的帧将是输出中的第一帧。

end

指定将被丢弃的第一帧的时间,即紧接在具有时间戳结束的帧之前的帧将是输出中的最后一帧。

start_pts

这与start相同,但此选项以时基单位而不是秒为单位设置开始时间戳。

end_pts

这与end相同,但此选项以时基单位而不是秒为单位设置结束时间戳。

duration

输出的最大持续时间(以秒为单位)。

start_frame

应传递给输出的第一帧的编号。

end_frame

应删除的第一帧的编号。

'start''end''duration'表示为持续时间规范;请参阅(ffmpeg-utils)接受语法的持续时间语法

请注意,前两组开始/结束选项和'duration'选项查看帧时间戳,而_frame变体只计算通过过滤器的帧。另请注意,此过滤器不会修改时间戳。如果希望输出时间戳从零开始,请在修剪滤波器后插入一个setpts过滤器。

如果设置了多个开始或结束选项,则此过滤器会尝试贪婪并保留与至少一个指定约束匹配的所有帧。要仅保留一次匹配所有约束的零件,请链接多个修剪过滤器。

默认值是保留所有输入。所以可以设置例如只是最终值,以保持指定时间之前的一切。

例子:

  • 删除除输入的第二分钟以外的所有内容:

      ffmpeg -i INPUT -vf trim=60:120
    
  • 只保留第一秒:

      ffmpeg -i INPUT -vf trim=duration=1
    

29.178 unpremultiply

使用第二个流的第一个平面作为alpha,将alpha不成倍增效应应用于输入视频流。

两个流必须具有相同的尺寸和相同的像素格式。

过滤器接受以下选项:

planes

设置要处理的平面,将复制未处理的平面。 默认值为0xf,将处理所有平面。

如果格式有12个分量,则亮度为0。如果格式有34个分量:对于RGB格式,位0为绿色,位1为蓝色,位2为红色; 对于YUV格式,位0是亮度,位1是色度-U,位2是色度-V。 如果存在,alpha通道始终是最后一位。

inplace

不需要第二个输入进行处理,而是使用输入流中的alpha平面。

29.179 unsharp

锐化或模糊输入视频。

它接受以下参数:

luma_msize_x,lx

设置亮度矩阵水平尺寸。它必须是3到23之间的奇数。默认值为5

luma_msize_y,ly

设置亮度矩阵垂直大小。它必须是3到23之间的奇数。默认值为5

luma_amount,la

设置亮度效果强度。它必须是浮点数,合理的值介于-1.51.5之间。

负值会使输入视频模糊,而正值会使其锐化,零值将禁用效果。

默认值为1.0

chroma_msize_x,cx

设置色度矩阵水平尺寸。它必须是3到23之间的奇数。默认值为5

chroma_msize_y,cy

设置色度矩阵垂直大小。它必须是323之间的奇数。默认值为5

chroma_amount,ca

设置色度效果强度。它必须是浮点数,合理的值介于-1.51.5之间。

负值会使输入视频模糊,而正值会使其锐化,零值将禁用效果。

默认值为0.0

所有参数都是可选的,默认为字符串'5:5:1.0:5:5:0.0'的等效值。

29.179.1 示例

  • 应用强烈的亮度锐化效果:

      unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
    
  • 应用亮度和色度参数的强烈模糊:

      unsharp=7:7:-2:7:7:-2

FFplay文档解读-43-视频过滤器十八相关推荐

  1. FFplay文档解读-41-视频过滤器十六

    29.150 selectivecolor 将青色,品红色,黄色和黑色(CMYK)调整为特定颜色范围(例如"reds","yellows","gree ...

  2. FFplay文档解读-39-视频过滤器十四

    29.130 prewitt 应用prewitt运算符输入视频流. 过滤器接受以下选项: planes 设置要处理的平面,将复制未处理的平面. 默认值为0xf,将处理所有平面. scale 设定值将与 ...

  3. FFplay文档解读-22-音频过滤器七

    26.60 loudnorm EBU R128响度归一化.包括动态和线性归一化模式.支持单通道(直播,文件)和双通(文件)模式.该算法可以针对IL,LRA和最大真实峰值.为了准确地检测真实峰值,音频流 ...

  4. FFplay文档解读-45-视频过滤器二十

    29.190 w3fdif 对输入视频进行去交错(w3fdif代表Weston 3 Field Deinterlacing Filter). 基于Martin Weston为BBC R&D描述 ...

  5. FFplay文档解读-20-音频过滤器五

    26.41 chorus 为音频添加合唱效果. 可以使单个声音听起来像合唱,但也可以应用于乐器. 合唱类似于具有短延迟的回声效果,但是对于回声,延迟是恒定的,伴随合唱,使用正弦或三角调制来改变它. 调 ...

  6. FFplay文档解读-47-多媒体过滤器一

    32. 多媒体过滤器 以下是当前可用的多媒体过滤器的说明. 32.1 abitscope 将输入音频转换为视频输出,显示音频位范围. 过滤器接受以下选项: rate,r 设置帧速率,表示为每秒帧数. ...

  7. FFplay文档解读-49-多媒体过滤器三

    32.14 sendcmd, asendcmd 将命令发送到filtergraph中的过滤器. 这些过滤器读取要发送到filtergraph中其他过滤器的命令. 必须在两个视频滤镜之间插入sendcm ...

  8. FFplay文档解读-31-视频过滤器六

    29.50 elbg 使用ELBG(增强型LBG)算法应用海报效果. 对于每个输入图像,滤波器将根据码本长度(即不同输出颜色的数量)计算从输入到输出的最佳映射. 此过滤器接受以下选项. codeboo ...

  9. FFplay文档解读-16-音频过滤器一

    26. 音频过滤器 配置FFmpeg构建时,可以使用--disable-filters禁用任何现有过滤器. 配置输出将显示构建中包含的音频过滤器. 以下是当前可用音频过滤器的说明. 26.1 acom ...

最新文章

  1. JS arguments 对象
  2. 关于matlab中princomp的使用说明讲解
  3. Linux下查找命令
  4. Doxygen学习小记
  5. 云-PC-matlab-物联网及其它
  6. xml:使用xmlspy创建xml文件,且通过xml文件生成对应的dtd文件
  7. 1、什么是软件危机?它是哪些典型表现?为什么会出现软件危机?
  8. phpstrom安装,配置,激活教程,以及使用lanyu的激活码,报错1653219,解决办法
  9. 单核CPU和多核CPU的理解
  10. 互信息(Mutual Information)的介绍
  11. 数学教程之14本用于早期数学学习的精美插图儿童读物
  12. vs智能提示英文转为中文
  13. 织梦html伪静态页面,dedecms织梦全站伪静态设置+全套伪静态规则
  14. 计算机二级基础知识点全部讲解,计算机二级基础知识点整理
  15. SpringBoot之配置文件YML
  16. Ubuntu 16.04安装的一些基础软件--搜狗输入法、Chrome、网易云音乐、sublime text
  17. visual studio code 键盘快捷键参考
  18. Android 操作系统你必须了解的知识
  19. WPhone7 随笔 (一)
  20. 【android课表】一个简单的安卓课表软件

热门文章

  1. 30位中外大师的摄影箴言
  2. 深入探索Android内存优化
  3. 178685-33-1,Azide-PEG3-Tos叠氮化物(N3)基团通过点击化学与炔烃、BCN、DBCO反应
  4. 2022年1~8月语音合成(TTS)和语音识别(ASR)论文月报
  5. 爬虫项目七:Python对唯品会商品数据、评论数据的爬取
  6. HTML5期末大作业:仿唯品会购物网站设计——仿唯品会购物商城(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 商城网站设计
  7. OpenEuler树莓派基础实验 20212802范辰宇
  8. 深度链接、延迟深度链接、App Links以及关于LinkedME实现深度链接的原理解析
  9. OTA制作及升级过程笔记
  10. 100+份项目管理模板和工具免费下载,包含项目管理各个流程都该用到哪些工具和方法!