我有一个看似非常简单的用例,我无法从散布在互联网上的说明或 ffmpeg 手册中找到重现的方法。
基本上,我希望将任意 webm 视频转换为 4 帧 [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_selected_t\,1))',setpts=N/TB,fps=1" -c:v libwebp_anim -loop 0 d.webp
其中 $D 是从 ffprobe 获得的媒体持续时间。
关于ffmpeg - 使用ffmpeg生成固定时间、固定帧数、webp动画预览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64561852/