使用ffmpeg生成固定时间、固定帧数、webp动画预览

使用ffmpeg生成固定时间、固定帧数、webp动画预览,ffmpeg,webp,Ffmpeg,Webp,我有一个看似非常简单的用例,我找不到一种方法来复制分散在互联网上的指令,也找不到ffmpeg手册 基本上,我希望将任意webm视频转换为视频的四分之一帧[0,1/4 1/2 3/4 1] ffmpeg -i video.webm -vf fps=1/$(echo 'scale=6;' $(ffprobe -loglevel quiet -of 'compact=nokey=1:print_section=0' -show_format_entry duration /video.webm) '

我有一个看似非常简单的用例,我找不到一种方法来复制分散在互联网上的指令,也找不到ffmpeg手册

基本上,我希望将任意webm视频转换为视频的四分之一帧[0,1/4 1/2 3/4 1]

ffmpeg -i video.webm -vf fps=1/$(echo 'scale=6;' $(ffprobe -loglevel quiet -of 'compact=nokey=1:print_section=0' -show_format_entry duration /video.webm) ' / 4' | bc)  thumbnail-%d.png
然后,我希望这些帧生成一个webp文件,该文件以每秒1帧的速度在每个帧中无限循环

img2webp -loop 0 -d 1000 -o d.webp thumbnail-*
单次执行ffmpeg命令等效于什么?

使用

ffmpeg-i video.webm-vf“select='if(eq(n\,0),1,lt(mod(t\,$D/4)\,1)*gte(t-prev\u selected\u t\,1)),setpts=n/TB,fps=1”-c:v libwebp\u anim-循环0 D.webp


其中$D是从ffprobe获得的媒体持续时间。

谢谢Gyan。结果不一样,不仅它不循环。它也只显示3帧,第3帧看起来已损坏。你能确认持续时间是以秒为单位的吗?也许我犯了一个错误。即使如此,至少现在我有了某种形式的动画。输出在浏览器(FF82,Chrome86)中工作,正如预期的循环。确保您使用的是ffmpeg的当前git版本。