当前位置: 首页 > 知识库问答 >
问题:

FFMPEG:缩放+裁剪视频然后覆盖图像?

云远
2023-03-14

这是我的第一个问题。帮助我帮助你帮助我:这个问题需要澄清吗?

目标:一个脚本,使Instagram就绪的视频与音频,并一个logo覆盖。脚本接受一个音频和视频源,并将它们组合起来。重要:标志应该有一个一致的位置和大小为每个视频。这很可能意味着所有输出的视频应该具有相同的宽度x高度。

任何替代方法都是受欢迎的!

下面是我从python调用的ffmpeg命令。我试着将视频缩放到720:-2(所以自动高度),然后从中心裁剪一个500x500的正方形。720和500的选择是任意的;更好的方法是受欢迎的。

ffmpeg -i video.mp4 -i logo.png -i audio.mp3 -filter_complex "[0:v]scale=720:-2,crop=500:500[bg];[bg][1:v] overlay=(W-w)/2:(H-h)/2" -pix_fmt yuv420p -map 0:v -map 2:a -shortest + output.mp4

此脚本在某些视频中出错。

[Parsed_crop_1 @ 0x7fcf96401f00] Invalid too big or non positive size for width '500' or height '500'
[Parsed_crop_1 @ 0x7fcf96401f00] Failed to configure input pad on Parsed_crop_1

我是ffmpeg的新手,所以请指导我如何正确使用filter_complex。谢谢!

共有1个答案

白星腾
2023-03-14

使用

ffmpeg-i video.mp4-i logo.png-i audio.mp3-filter_complex“[0:v]scale=720:-2,crop=min(500\,min(iw\,ih)):min(500\,min(iw\,ih))[bg];[bg][1:v]overlay=(W-w)/2:(H-h)/2”-pix_fmt yuv420p-map 2:a-最短输出.mp4

新的crop参数将确保crop不会尝试选择大于框架的尺寸。

scale和crop值的选择取决于用例,并且必须由您决定。

 类似资料:
  • 我试图缩放一个视频,这样它总是512宽,高度与原始视频成比例变化。缩放后,我想应用水印/覆盖到视频,因此视频将缩放,但水印不会。 我能够分别使用以下过滤器实现这些目标: 规模 水印 他们靠自己成功地工作。 然而,当试图将两者结合起来时,我遇到了一些麻烦。 将两者都作为参数当然不起作用,因为其中一个将覆盖另一个。 我试过: 我的想法是首先应用刻度,然后再应用水印,但我得到的只是一个错误 为“电影”过

  • 我正在使用https://github.com/writingminds/ffmpeg-android-java命令裁剪视频: 其中“in”是inputfile,“out”是outputfile。

  • 我要用视频、替换音频和添加字幕: ffmpeg-vsync 0-hwaccel cuda-an-i“E:\video.mp4”-vn-i“E:\audio.mp3”-vf“subtitles=E\:\\sub.txt”-映射0:v-映射1:a-b:v4m-最大速率4M”E:\output.mp4”-y 我想不出如何在链中再添加一个,比如在右下角添加一个徽标 到目前为止,我已经尝试过了,下班后(仍然

  • 我有两个视频,其中一个覆盖在另一个上,覆盖的只有几秒钟长,我希望它在主视频播放的同时保持循环。我尝试了我能想到的一切,但似乎在ffmpeg中都行不通 将一个覆盖在另一个之上,但没有循环。将更改为 给我一条错误消息 [movie@01B19FC0]找不到键“loop”。[movie@01b19f40]分析选项字符串时出错:“loop=0”初始化带有参数“重叠”的筛选器“movie”时出错。wmv:l

  • 问题:是否有一个单独的FFMPEG裁剪过滤器可以用于所有视频,包括(但不限于):856x480、640x480和1280x720? 我们有一个视频处理系统(使用DirectShow),所有输入到这个系统的视频必须是16:9使用MJPEG编解码器。我们使用下面的ffmpeg命令将源视频转换为MJPEG,缩放像素使其为正方形,然后裁剪到16:9的纵横比。这对大多数输入视频都很管用,输出正是我们想要的。

  • 我需要组合2视频垂直或水平。但在此之前,我需要裁剪一两个视频。 两种视频大小都需要为720x640。我需要组合2个分辨率为720x1280的视频。我首先将它们裁剪到720x640(从顶部裁剪320px,从底部裁剪320px),然后垂直组合。 我可以组合相同大小的视频与命令: ffmpeg-i1.mp4-i2.mp4-filter_complex"[0: v]比例=520:-1[v0];[1: v]