视频错误地覆盖了另一个视频 - 背景覆盖在覆盖层上

视频错误地覆盖了另一个视频 - 背景覆盖在覆盖层上

我是 FFmpeg 的新用户,我想用一个命令在两个视频(一个视频覆盖另一个视频)上插入徽标。

  1. FFmpeg 命令(确定):
ffmpeg -stream_loop -1 -i background1080p.mp4 -i input1080p.mp4 -i
logo.png -filter_complex
"[1]scale=1280:720[inner];[0][inner]overlay=70:70:shortest=1[vid];
[vid][2]overlay=10:10:enable='not(between(t\,10\,15))'[out]" -map
"[out]" -map 0:a -c:a copy -y -shortest output.mp4

效果不错的视频 当我使用上述命令时,它运行正常。

  1. FFmpeg 命令错误

但是,当我将它应用到下面的命令行时,出现错误:

@ECHO OFF
Setlocal EnableDelayedExpansion
set INPUT=D:\Shorts\code\INPUT
set OUTPUT=D:\Shorts\code\OUTPUT

:: encode video:

for %%a in ("%INPUT%\*.*") DO ffmpeg -i "%%a" -stream_loop -1 -i background.mp4 -i logo.png -filter_complex "[1]scale=1280:720[inner];[0][inner]overlay=70:70:shortest=1[vid]; [vid][2]overlay=10:10:enable='not(between(t\,10\,15))'[out]" -map "[out]" -map 0:a -c:a copy -shortest "%output%\%%~na_%%03d.mp4"

pause

错误的叠加结果

  • 主视频(来自INPUT文件夹)视频background.mp4具有相反的角色,并且应该覆盖的是背景。

请帮我修复错误

答案1

交换前两个输入的顺序,即-stream_loop -1 -i background.mp4 -i "%%a"

相关内容