将大图像叠加到像Snapchat这样的小视频上

时间:2019-05-09 11:05:17

标签: android ffmpeg android-ffmpeg

我想在不同尺寸的视频上添加全屏重叠图像, 我使用ffmpeg,如果叠加层和视频的缩放比例相同(宽度和高度相同),则效果很好。 如果视频的高度和宽度尺寸小于重叠图像,则重叠图像会受到挤压,但我想像快照聊天视频一样应用,它们会在顶部和底部添加黑色视图

Ffmpeg命令是

String[]{"-y", "-i", filePath, "-i",
            overlayPath,
            "-preset", "ultrafast",
            "-filter_complex",
            "[1][0]scale2ref[i][m];[m][i]overlay[v]", "-map",
            "[v]", "-map", "0:a?", "-ac", "2", output};

我要在下面提到以下输出链接。

Snapchat output

My editing result output

1 个答案:

答案 0 :(得分:1)

您可以传递输出视频的宽度和高度。 通过使用pad属性,如果视频的高度较小,则可以在视频中添加黑色区域

ffmpeg -i intro-blur.mp4 -i 3.jpg -filter_complex "[0]scale=720:1280:force_original_aspect_ratio=decrease,pad=720:1280:(ow-iw)/2:(oh-ih)/2,setsar=1[backd],[backd][1]overlay" out_intro_blur.mp4

您可以缩放覆盖图像,例如“ scale = 1439x2559”,如果要缩放覆盖图像,则可以使用[1] scale = 1439x2559 [scaled_image]来缩放覆盖图像。 [scaled_image]叠加在视频上。

下面的示例

ffmpeg -i intro-blur.mp4 -i 3.jpg -filter_complex "[0]scale=720:1280:force_original_aspect_ratio=decrease,pad=720:1280:(ow-iw)/2:(oh-ih)/2,setsar=1[backd],[1]scale=1439x2559[scaled_image],[backd][scaled_image]overlay" out_intro_blur.mp4