ffmpeg 将 gif 叠加到视频上,达到视频尺寸的全尺寸

ffmpeg 将 gif 叠加到视频上,达到视频尺寸的全尺寸

我想在视频上添加透明的 gif 图像,我可以使用以下命令来实现

ffmpeg -i inputVideo.mp4 -i yourImage.png -filter_complex "overlay=5:5" -codec:a copy outputVideo.mp4

但我想要做的是覆盖图像将覆盖视频的完整尺寸,例如视频尺寸未知

在此处输入图片描述

例如,上面的图像将应用于视频的全屏。

答案1

#!/bin/bash
f="input 1.mp4"
WID="$(ffprobe -v error -show_entries stream=width -of default=noprint_wrappers=1:nokey=1 "$f")"
HEI="$(ffprobe -v error -show_entries stream=height -of default=noprint_wrappers=1:nokey=1 "$f")"
echo $WID x $HEI
ffmpeg -hide_banner -i "$f" -ignore_loop 0 -i "L6h34.gif" -filter_complex [1:0]scale="${WID}"-10:"${HEI}"-10[v0],[0:0][v0]overlay=5:5:shortest=1[v] -map [v] -c:v h264_nvenc -f matroska -y "/mnt/sklad/tmp/L6h34.mkv"

比例尺

答案2

使用scale2ref覆盖过滤器:

ffmpeg -i video.mp4 -stream_loop -1 -i input.gif -filter_complex "[0][1]scale2ref[b][f];[b][f]overlay=shortest=1" -c:a copy -movflags +faststart output.mp4

相关内容