
私は FFmpeg の新規ユーザーです。1 つのコマンドで 2 つのビデオ (1 つのビデオが別のビデオにオーバーレイ) にロゴを挿入したいと考えています。
- FFmpeg コマンド (ok):
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
- 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
最初の2つの入力の順序を入れ替えます。-stream_loop -1 -i background.mp4 -i "%%a"