ffmpeg Quellvideo drehen und Overlay-Bilder anwenden

1513
Drime

Ich habe einige Probleme damit, ich habe ein Quellvideo, das verkehrt aufgenommen wurde. Ich brauche dieses Video, um gedreht zu werden und habe ein paar transparente PNG-Dateien darüber gelegt. Ich verwende diesen Befehl:

ffmpeg -i Upside_Down.mov -r 1 -i overlays_%d.png -c:v libx264 -r 30 -pix_fmt yuv420p -filter_complex "overlay=0:0" output.mkv

Der obige Befehl funktioniert einwandfrei, hält mein Quellvideo jedoch offenbar auf dem Kopf. Ich weiß, dass Rotation durch -vf vflip: hflip erreicht werden kann, aber das scheint nicht zu funktionieren. Gibt es eine Möglichkeit, dieses Ziel zu erreichen, oder ist dies die einzige Möglichkeit, das Quellvideo umzudrehen und die Überlagerung in einem zweiten Durchlauf anzuwenden, dh zuerst ffmpeg -i Upside_Down.mov -vf vflip:hflipden Code oben ausführen, wenn er fertig ist?

3

1 Antwort auf die Frage

3
LordNeckbeard

Sie müssen lediglich eine Filterkette erstellen, die aus Ihren zusätzlichen Filtern besteht:

ffmpeg -i Upside_Down.mov -r 1 -i overlays_%d.png -c:v libx264 -c:a copy -filter_complex "[0:v][1:v]overlay,vflip,hflip,format=yuv420p[out]" -map "[out]" -map 0:a output.mkv 
  • Ich bezeichne die Beschriftungen der Filtereingangs- und -ausgangsverknüpfungen explizit, damit Sie genau wissen, was los ist, anstatt sich auf möglicherweise unbekannte Standardwerte zu verlassen. [0:v]bezieht sich auf den Videostream (s) des ersten Eingangs ( Upside_Down.mov) und [1:v]bezieht sich auf den Videostream (s) des zweiten Eingangs ( overlays_%d.png).

  • Ich habe hinzugefügt -c:a copy, dass das Audio kopiert werden soll, anstatt es neu zu kodieren, aber ich bin nicht sicher, ob es Upside_Down.movAudio enthält. Dies ist ein Grund, warum Sie immer die vollständige ffmpegKonsolenausgabe Ihres Befehls enthalten sollten.

  • Da das Ändern des Pixelformats durch Filterung erfolgen kann, habe ich vom Videofilter gewechselt -pix_fmt, sodass eine potenzielle Konvertierung genau dann erfolgen kann, wenn Sie dies wünschen. Ich habe dasselbe mit und dem Videofilter gemacht (aber ich bin mir nicht sicher, warum Sie möglicherweise die Framerate ändern: Die Konsolenausgabe wäre nützlich gewesen).format-rfps

  • Siehe auch: Wie wird ein Video mit FFmpeg um 180 ° gedreht (vertikal / auf dem Kopf stehend)?