gpt4 book ai didi

ffmpeg - libavfilter 缩略图似乎只处理第一组 N 帧

转载 作者:行者123 更新时间:2023-12-04 23:17:38 25 4
gpt4 key购买 nike

根据文档(见下文),“-vf 缩略图”应该处理 N 帧的批处理并从每个批处理中选择 1 帧,但事实并非如此。难道我做错了什么?我还尝试了使用“-vframes 5”和“out%d.png”的各种选项,但相同的帧重复了很多次,但它确实处理了多批 N 帧。

8.37 缩略图

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

它接受要分析的帧批量大小作为参数(默认 N=100);在一组 N 帧中,过滤器将选择其中一个,然后处理下一批 N 帧,直到结束。

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

以下示例每 50 帧提取一张图片:

缩略图=50

使用 ffmpeg 创建缩略图的完整示例:

ffmpeg -i in.avi -vf 缩略图,比例=300:200 -frames:v 1 out.png

最佳答案

需要再设置一个参数-vsync (将其设置为 0 或 2),或者 muxer 得到错误的帧,因为默认情况下 -vsync=1
例如,正确的命令是

ffmpeg -i INPUT_FILE -vsync 0 -vf thumbnail,scale=300:200 -frames:v 20 -f image2 img-%04d.jpg

至于我,我使用 而不是缩略图过滤器工字架选择器 - 它会生成更多文件,但对于我的目的来说更准确。
这是带有时间戳的示例,首先我们必须从文件中找出正确的 fps(这是 Mac OS X grep 方言)来设置 r= 的值
ffmpeg -i INPUT_FILE 2>&1 | grep -Po "[^\s]+\sfps"

你也需要选择你自己的字体文件,我使用 Mac OS X 文件

现在一切就绪(例如保存前 20 个 I 帧)
ffmpeg -i INPUT_FILE -someq -vsync 0 -vf \
drawtext="fontfile=/Library/Fonts/Courier\ New.ttf: \
timecode='00\:00\:00\:00':r=23.98: fontcolor=0xFFFFFFFF:fontsize=18:\
shadowcolor=0x000000EE:shadowx=1:shadowy=1",select='eq(pict_type\,I)'\
-vframes:v 20 -f image2 img-%04d.jpg

(奇怪,我在 \ -spitted line 上遇到错误,但所有工作都在一行中)

关于ffmpeg - libavfilter 缩略图似乎只处理第一组 N 帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9048323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com