ffmpeg从长片条中选择精确的框架

时间:2018-04-28 10:06:19

标签: ffmpeg

我正在使用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

我按照this tutorial

的说明操作

我能够获得长片影像: http://i.imgur.com/BX0pV4J.jpg

这工作正常,他们在滑块中移动图像很好。

我的问题是如何从滑块/胶片条中选择特定的帧。如何从滑块计算确切的持续时间,然后执行命令来提取该帧?

2 个答案:

答案 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