我正在使用ffmpeg为我的视频选择更好的缩略图。并且选择将基于滑块。 根据要求,不需要多个缩略图只需一个长片电影,并在滑块的帮助下选择缩略图并保存。
我使用下面的命令获取长条形缩略图。
的说明操作ffmpeg -loglevel panic -y -i“video.mp4”-frames 1 -q:v 1 -vf“select = not(mod(n \,40)),scale = -1:120,tile = 100x1 “video_preview.jpg
这工作正常,他们在滑块中移动图像很好。
我的问题是如何从滑块/胶片条中选择特定的帧。如何从滑块计算确切的持续时间,然后执行命令来提取该帧?
答案 0 :(得分:0)
在我的一个项目中,我实现了以下方案。在我从ffmgpeg命令获取视频持续时间的代码中,如果持续时间小于0.5秒,则为我设置相同的新缩略图间隔。在您的情况下,您应该设置缩略图创建的时间间隔。希望这会对你有所帮助。
$ dur =' ffprobe -i'。$ video。' -show_entries format = duration -v quiet -of csv =" p = 0"&#39 ;;
$ duration = exec($ dur);
if($duration < 0.5) {
$interval = 0.1;
} else {
$interval = 0.5;
}
screenshot size
$size = '320x240';
ffmpeg command
$cmd = "ffmpeg -i $video -deinterlace -an -ss $interval -f mjpeg -t 1 -r 1 -y $image";
exec($cmd);
答案 1 :(得分:0)
您可以尝试以下方法:
ffmpeg -vsync 0 -ss duration -t 0.0001 -noaccurate_seek -i filename -ss 00:30 -t 0.0001 -noaccurate_seek -i filename -filter_complex [0:v][1:v] concat=n=2[con];[con]scale=80:60:force_original_aspect_ratio=decrease[sc];[sc]tile=2x1[out] -map [out]:v -frames 1 -f image2 filmStrip.jpg
2 frame