gpt4 book ai didi

select - FFMPEG场景检测: overlay original frame number

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

我可以使用 ffmpeg -i video.mp4 -vf "select=gt(scene\,0.003),setpts=N/(30*TB)" frame%d.jpg 从视频文件中提取与前一帧不相似的所有帧(source)
我想将帧号覆盖到每个选定的帧上。我尝试添加 drawtext=fontfile=/Windows/Fonts/Arial.ttf: text='frame\: %{frame_num}': x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1: fontsize=30在 select 和 setpts 之后到过滤器,但是 %{frame_num} 返回 1, 2, 3, ... (source)
如果我将 drawtext 放在 select 和 setpts 之前,我会得到类似 16, 42, 181, ...作为帧号(这正是我想要的),但由于添加文本覆盖后会运行场景检测,因此也可能会检测到覆盖中的变化。
是否可以独立于另一个进行场景检测和叠加? [in] split [out0][out1]可用于单独应用过滤器,但我不知道如何再次“组合”结果。

最佳答案

你在正确的轨道上。先使用 split 创建两个流。在一个上运行场景检测,在另一个上绘制文本。然后使用覆盖在修剪后的流上绘制编号的流 - 只会发出相应的修剪后的编号帧。ffmpeg -i video.mp4 -vf "split=2[num][raw];[raw]select=gt(scene\,0.003)[raw];[num]drawtext=fontfile=/Windows/Fonts/Arial.ttf: text='frame\: %{frame_num}': x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1: fontsize=30[num];[raw][num]overlay=shortest=1,setpts=N/(30*TB)" -r 30 frame%d.jpg

关于select - FFMPEG场景检测: overlay original frame number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65371610/

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