使用FFMPEG,创建与视频比例成比例的缩略图

Sop*_*rus 13 ffmpeg

我正在使用以下命令使用FFMPEG创建缩略图:

ffmpeg -itsoffset -1 -i video.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 240x180 image.png
Run Code Online (Sandbox Code Playgroud)

它工作正常.但是,当视频的比例不是4:3时,它仍会创建一个240x180的图像,额外的空间将被涂成黑色.是否有一些命令的变化会阻止这个并给我一个与视频比例成比例的图像?换句话说,我希望240x180是缩略图的最大尺寸,但不是最小尺寸.

如果视频小于240x180时命令创建较小的图像,则为额外点.

slh*_*hck 29

使用scale过滤器:

ffmpeg -itsoffset -1 -i video.avi -vframes 1 -filter:v scale="280:-1"  image.png
Run Code Online (Sandbox Code Playgroud)

这将保留纵横比以实现280像素的宽度.要将宽度增加到最大280像素但保留比率,请使用:

scale='min(280\, iw):-1'
Run Code Online (Sandbox Code Playgroud)

在这里,我们假设您的视频采用横向格式,因此我们可以将最大宽度设置为280并忘记高度,对于3:2视频应为180,对于16:9视频应为158.

笔记:

  • -vcodec mjpeg 在写入PNG文件时没有意义
  • -f rawvideo 这里也没有做任何事情
  • -an 因为FFmpeg无法将音频写入PNG文件,所以不需要