Sie verwenden einen Filter und Filter erfordert Re-Encoding, so dass Sie nicht verwenden können, streamen kopieren Sie das Video. Wenn Sie die "gleiche Qualität" wünschen, müssen Sie einen verlustfreien Encoder verwenden:-vcodec copy
ffmpeg -i video.mp4 -i image.png -filter_complex overlay -c:v libx264 -crf 0 -c:a copy -movflags +faststart output.mp4
Die resultierende Datei kann riesig sein: Dies wird für verlustfreie Ausgaben erwartet.
Der Player oder das Gerät kann die verlustfreie Datei möglicherweise nicht abspielen.
Wenn Sie eine "visuell verlustfreie" Ausgabe wünschen, die technisch nicht verlustfrei ist, aber fast so erscheint, dann verwenden Sie
-crf 18
statt-crf 0
.Keine Notwendigkeit für den Film Quellenfilter. Fügen Sie einfach Ihr Überlagerungsbild wie bei der Eingabe wie bei jeder anderen Datei hinzu, wie in meinem Beispiel gezeigt.
Da Sie PHP verwenden, gehe ich davon aus, dass Sie die Videos als progressiven Download präsentieren werden. Hinzufügen,
-movflags +faststart
damit die Wiedergabe beginnen kann, bevor die Datei vollständig heruntergeladen ist.