Sie können eine einfache Bildüberlagerung mit der folgenden Syntax ausführen:
ffmpeg -i input.mp4 -i image.png \
-filter_complex "[0:v][1:v] overlay=25:25:enable='between(t,0,20)'" \
-pix_fmt yuv420p -c:a copy \
output.mp4
overlay=25:25
bedeutet, dass wir das Bild 25px nach rechts und 25px nach unten positionieren möchten, und zwar ausgehend von der oberen linken Ecke (0: 0).
enable='between(t,0,20)'
bedeutet, dass das Bild zwischen 0 und 20 Sekunden angezeigt werden soll.
[0:v][1:v]
bedeutet, dass die erste Videodatei, mit der wir importieren -i
, in unserem Fall input.mp4 oder wie ffmpeg sie als Videoeingabedatei 0 ansieht, in unserem Fall image.png unter Videoeingabedatei 1 liegen soll. :v
bedeutet nur, dass wir Video 0 und Video 1 [0:a]
wollen. bedeutet, dass wir die erste importierte Audiospur wollen. Was auch von input.mp4 kommen würde, aber auf die Audiospur anstatt auf die Videospur in der mp4-Datei zeigen würde.
Wenn Sie eine bestimmte Bildqualität / -einstellungen und nicht die von ffmpeg gewählten Einstellungen wünschen, fügen Sie die gewünschten Bild- und / oder Audiokodierungsoptionen hinzu. Der Standard-Video-Encoder ist x264. Überprüfen Sie die H.264-Codierungsanleitung auf mögliche Einstellungen.
Das -acodec copy
/ -c:a copy
, das Sie in Ihrem Befehl haben, zB würde das Audio aus der Quelldatei einfach wiederverwenden. Das geht natürlich nicht mit dem Video (in diesem Fall), aber das muss transkodiert werden, da wir eine neue Videoquelle erstellen.
Wenn Sie Audio transkodieren möchten, entfernen Sie den -c:a copy
Teil. Möglicherweise müssen Sie explizit einen Encoder angeben, z -c:a aac -strict experimental
. Weitere Informationen finden Sie im AAC-Codierungshandbuch .