使用 ffmpeg 制作视频所有帧的图像

使用 ffmpeg 制作视频所有帧的图像

我目前正在尝试拍摄一段视频input.mp4,并将其转换为整个视频每秒 30 帧的图像。我有这个命令,它几乎可以工作,因为它可以生成整个视频的图像,但最后一部分

ffmpeg -i input.mp4 -vf "select='lt(n,3696)',scale=320:-1,tile=20x100" -frames:v 1 -y a.jpg

为了找到视频的总帧数,我使用了这个命令

ffprobe -v error -select_streams v:0 -count_packets -show_entries stream=nb_read_packets -of csv=p=0 input.mp4

输出3696和图像输出大部分内容,但缺少最后的部分。

答案1

您为过滤器设置的最大网格大小tile20x100,这意味着最多只能容纳 2000 帧,从而剪掉最后 1696 帧。

更合适的网格大小可能是28x132,它应该能够适合整个视频,因为恰好有 3696 个单元格。

因此,将视频过滤器的该部分更改为tile=28x132应该可以显示所有帧。

相关内容