将 Mp4 文件转换为纵向视频

Turn Mp4 File into Portrait Video

我最近编写了一个机器人程序,它使用 Twitch API 抓取 Twitch 视频,然后 post 将它们上传到 YouTube。如果你想看一个例子,这是我的 youtube 频道:https://www.youtube.com/channel/UCuhWw8LbPWdkybIF9olAszw

我遇到的问题是我想找到一种方法将这些常规抽搐视频转换成我可以自动上传的 YouTube 短片。不需要加facecam,整个视频压缩成9:16格式即可。

我已经尝试过 FFMPEG,但我不知道我是否做对了,我真的需要帮助或建议如何做。

这是我尝试转换的视频示例: https://www.youtube.com/watch?v=hZecXrvd6_g

(恕我直言,这只是我在机器人频道上看到的第一个视频)

Tldr:将 mp4 文件转换为 9:16 视频格式

编辑:

命令 i 运行: ffmpeg -i video.mp4 -vf scale=1280:720 output.mp4

您当前的命令失去了显示纵横比。

有 4 个基本的视频大小操作过滤器:

  • scale缩放输入视频维度。使用iw:-1-1:ih保持纵横比
  • pad: 给输入图像添加paddings(增加frame size)
  • crop:将输入视频裁剪到给定尺寸(减小帧大小)
  • setsar 始终遵循带有 setsar=1/1scale 过滤器以保持像素形状正方形。

阅读有关其选项和示例的文档。您可以链接这些过滤器来实现您的目标。

所以,假设从纵向视频转到 720p (1280x720)。第一件事是将输入缩放到 720px 的高度(同时保持纵横比)。然后水平填充以填充 1280px 列。这是过滤图:

-vf scale=-1:720,setsar=1/1,pad=w=1280:h=720:x=(ow-iw)/2:color=violet

您只需用逗号链接这些过滤器。请注意,许多 ffmpeg 过滤器选项接受表达式(例如,ow=输出宽度,iw=输入宽度),因此您不需要自己计算确切的数字。

像这样,只需计划您的操作顺序即可获得所需的效果。在每一帧之后画出视频的形状将帮助您了解您在做什么。祝你好运。