我在 Ubuntu 中使用 ffmpeg 进行图像创建和视频转换我的问题是我想以不同的时间间隔生成图像(缩略图)。假设我上传了一个视频,然后它计算视频时间并以相等的间隔生成 5 张图像(缩略图)。(例如,假设视频的时间段是 50 分钟,然后图像在 0、10、20、30、40 处获取, 50 个间隔)
请帮忙
谢谢
简洁版本:
ffmpeg -itsoffset -4 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
此命令在视频的第 4 秒生成一个 320×240 大小的 PNG 缩略图。把它放在一个改变时间和文件名的脚本中,你就完成了。
长版:http ://blog.prashanthellina.com/2008/03/29/creating-video-thumbnails-using-ffmpeg/
好吧,如果你只是运行:
ffmpeg -i 文件.mp4
输出将包含 stderr 上视频的长度。如果您运行程序并将其输出通过管道传输到文件,您可以读取它,或者如果您愿意,您可以读取 stderr 的输出,然后用您使用的任何语言编写一些代码来查找该输出中的位置。这很漂亮,因为我相信它实际上在字符串中为“持续时间:00:15:00”或其他。
如果你运行:
ffmpeg -ss 00:03:00 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
ffmpeg -ss 00:06:00 -i test.avi -vcodec mjpeg -vframes 1 - an -f rawvideo -s 320x240 test.jpg
ffmpeg -ss 00:09:00 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
ffmpeg -ss 00:12:00 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
ffmpeg -ss 00:15:00 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg
然后,您将每 3 分钟将帧作为 jpeg。希望这可以帮助。