Wiederholen Sie die Videoüberlagerung mit ffmpeg

2434
Ffmpeg fans

Ich habe zwei Videos, von denen eines über das andere gelegt wird. Die überlagerte ist nur ein paar Sekunden lang, und ich möchte, dass sie sich wiederholt, während das Hauptvideo abgespielt wird. Ich habe alles versucht, was mir einfällt, aber nichts scheint zu funktionierenffmpeg

Loop-Videohintergrund - Beispiel:

  1. "main_video" lange Zeit 56:00:00
  2. "video_bg_overlay" lange Zeit 00:00:30

Wie kann "video_bg_overlay" automatisch durch die Zeit "main_video" geschleift werden ?

3
@ Mulvya: hilf mir, pls Ffmpeg fans vor 7 Jahren 0

1 Antwort auf die Frage

3
Gyan

Die Schleifenoption im Filmfilter setzt keine neuen Zeitmarken für die Schleifenerweiterung, sodass dies manuell erfolgen muss.

ffmpeg -i "main_video" -af "pan=stereo|c0=FL|c1=FR,volume=1.5" \ -vf "movie=video_bg_overlay.mp4:loop=0,setpts=N/FRAME_RATE/TB,hue=s=0[bg];[in]scale=iw/2:-1,pad=iw+20:ih+20:10:10:color=yellow[m]; [bg][m]overlay=shortest=1:x=(W-w)/2:y=(H-h)/2[out]" \ -c:v libx264 Out_video 
Die Verwendung von `setpts = N / FRAME_RATE / TB` mit dem Filmfilter ist hier der Schlüssel. Einige andere Beispiele verwenden `setpts = PTS-STARTPTS`, was mit der Schleife nicht funktioniert. Quantum7 vor 6 Jahren 0