FFmpeg 是一个开源的、功能强大的音频和视频转换器。 使用 FFmpeg,我们可以对几乎所有类型的媒体文件进行编码、解码、转码、复用、解复用、记录、调整大小、流式传输、过滤和播放。 不仅如此,我们还可以抓取实时音频/视频流。 FFmpeg 附带了许多过滤器来执行不同的任务。 鲜为人知但有用的过滤器之一是 变焦距. 使用 zoompan 过滤器,我们可以在 Linux 中轻松放大和缩小视频。 让我使用示例命令向您展示如何做到这一点。
确保你已经在你的 Linux 机器上安装了 FFmpeg。 我们在以下链接中记录了在流行的 Linux 操作系统上安装 FFmpeg 的步骤。
- 如何在 Linux 中安装 FFmpeg
安装 FFmpeg 后,转到您保存视频的位置并运行以下命令以每 X 秒放大和缩小一次:
$ ffmpeg -i input.mp4 -vf "zoompan=z='if(lte(mod(time,10),3),2,1)':d=1:x=iw/2-(iw/zoom/2):y=ih/2-(ih/zoom/2):fps=30" output.mp4
上面的命令将放大到视频的中心 2 倍变焦 为了 前 3 秒 的 每 10 秒 时间块。 代替 input.mp4
用你的文件名。 还要根据您的要求调整值,并设置过滤器的 FPS 以匹配输入。 默认值为 25。
您可以使用以下命令在给定视频的其他详细信息中找到 FPS 详细信息:
$ ffmpeg -i input.mp4
这是转换前的实际输入视频:
而且,这是转换后的(放大)视频:
你注意到区别了吗? 视频在前 3 秒放大到 2 倍,然后恢复正常(缩小)。 恰好在第 10 秒,视频再次放大前 3 秒,循环继续直到视频结束。
您还可以尝试 FFmpeg zoompan 过滤器帮助部分中给出的以下 zoompan 设置。
放大 1.5 倍并同时平移到图片中心附近的某个点:
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='if(gte(zoom,1.5),x,x+1/a)':y='if(gte(zoom,1.5),y,y+1)':s=640x360
放大至 1.5 倍并始终在图片中心平移:
zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
与上面相同但没有暂停:
zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
仅将输入视频的第一秒放大到图片中心的 2 倍:
zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
有关更多 FFmpeg 命令示例,请参阅以下指南:
- 20 多个初学者的 FFmpeg 命令
希望这可以帮助。
音频和视频转换器CLI命令行命令行工具FFmpegFFmpeg 命令LinuxOpensourceZoom 视频