Angenommen, ich habe ein Video, das beliebige Abmessungen oder Codecs haben kann (z. B. mp4), und ich möchte seinem Kopf 3 Sekunden schwarze Frames hinzufügen.
Ich habe andere Varianten dieser Frage gesehen, die sich auf das Hinzufügen eines einzelnen Frames beziehen, sowie Antworten, die die Breite und Höhe des Videos angeben. Das Video kann jedoch eine beliebige Breite und Höhe haben, und ich möchte diese Werte nicht ändern. Fügen Sie einfach das Schwarz hinzu. In einem separaten Befehl möchte ich auch die schwarzen Sekunden zum Schwanz hinzufügen.
Im schwarzen Bereich sollte kein Audio vorhanden sein - das Schwarz sollte nur an der Vorderseite und am Ende verkettet werden. Außerdem möchte ich nach Möglichkeit vermeiden, das Video neu zu codieren, und das Ergebnis in eine neue Datei kopieren.
Jede Hilfe wäre dankbar.
Antworten:
Die grundlegende Methode zum Verbinden von Videos ohne Neucodierung ist die Verwendung des Concat-Demuxers. Für dieses Gerät müssen die zu verbindenden Dateien bestimmte Eigenschaften aufweisen, z. B. Codec, Bildrate, Videodimensionen, Zeitbasis usw.
Der erste Schritt besteht darin, das leere Segment zu erstellen, das sowohl am Kopf als auch am Schwanz verwendet werden kann.
Sie müssen einen Buchhaltungsschritt für das vollständige Video ausführen. Andernfalls wird das kombinierte Video wahrscheinlich mit der falschen Geschwindigkeit ausgeführt.
Erstellen Sie als Nächstes eine Textdatei.
Dann renne
In meinem ersten Schritt wird davon ausgegangen, dass der Videostream das am häufigsten verwendete Pixelformat hat
yuv420p
. Dies sollte in Ordnung sein, da dies das einzige Pixelformat ist, das von Web-Playern und Smartphone-Kameras, Consumer-Camcordern usw. unterstützt wird. Ist dies nicht dergeq
Fall, kann der Filter ausfallen.Ich gehe auch stillschweigend davon aus, dass das vollständige Video nicht mehr Referenzframes verwendet als mit der Voreinstellung
medium
von x264 erzeugt. Dies ist eine sichere Annahme für 95% der Videos.Schließlich gehe ich davon aus, dass das vollständige Video AAC-LC als Audio-Codec hat. Wird voraussichtlich für die meisten Telefon- / Cam- / Webvideos zutreffen.
quelle