gpt4 book ai didi

shell - 使用 ffmpeg 提取特定帧的列表

转载 作者:行者123 更新时间:2023-12-04 13:13:06 24 4
gpt4 key购买 nike

我正在尝试在视频上使用 ffmpeg 来提取特定帧的列表,由它们的帧号表示。因此,假设我只想从“test_video.mp4”中提取一帧,确切地说是帧号 150。我可以使用以下命令
ffmpeg -i test_video.mp4 -vf "select=gte(n\, 150)" -vframes 1 ~/test_image.jpg
但是,如果我想要精确的帧列表,例如 [100, 110, 127, 270, 300],该怎么办? ?我一直在查看此页面 (https://ffmpeg.org/ffmpeg-filters.html#select_002c-aselect) 并且可以看到有一些方法可以根据帧号、时间戳等的奇偶性来提取多个帧,但是我找不到执行我需要做的事情的语法。

理想情况下,我会在命名约定 out_image%03d.jpg 下提取给定帧的列表。 %03d被给定的帧号替换,尽管时间戳也可以工作。

有没有办法做到这一点?

最佳答案

利用

ffmpeg -i in.mp4 -vf select='eq(n\,100)+eq(n\,184)+eq(n\,213)' -vsync 0 frames%d.jpg

FFmpeg 主要是定时视频的处理器,即具有诸如帧率或采样率之类的循环率的媒体。它假定输出应与源具有相同的速率。如果提供的帧不充分,除非被告知不这样做,否则它会重复。 -vsync 0被添加,在这种情况下,它告诉它抑制重复。

关于shell - 使用 ffmpeg 提取特定帧的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38253406/

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