Hat jemand eine Idee, wie ich eine Bildmaske über das Video legen kann, ohne den Audio- und Video-Codec zu ändern?
Ich erstelle verschiedene Mediendateien zu Testzwecken und möchte die Kontrolle über meine Audio- und Videocodecs haben, die in einem A / V-Container verwendet werden. Jetzt muss ich eine Bildmaske über eine A / V-Datei legen, ohne den Audio- und Videocodec zu ändern .
Bei Verwendung ffmpeg -i video.avi -i image.png -filter_complex 'overlay' avi.mkv
kann ich hinzufügen, -acodec copy
aber nicht -vcodec copy
, dies gibt den Fehler:
Streamcopy für Ausgangsstreaam 0: 0 angefordert, der von einem komplexen Filtergraphen gespeist wird. Filterung und Streamcopy können nicht zusammen verwendet werden.
Und wenn ich nur den obigen Befehl benutze, codiert FFmpeg meine Streams in ein anderes Format (MPEG-4 & MP3).
quelle
Falls es jemandem hilft, sollte beachtet werden, dass es wahrscheinlich eine etwas hässliche Möglichkeit gibt, das zu tun, was Sie wollen, indem Sie Bash kombinieren
ffprobe
undffmpeg
verwenden. Wenn Sieffmpeg
installiert haben, haben Sie wahrscheinlichffprobe
auch. Als einfaches Nur-Audio-Beispiel hat das Folgende für mich funktioniert, obwohl im Prinzip etwas Ähnliches mit mehreren Streams unterschiedlicher Art erreichbar sein sollte.Erläuterung: Die Ausgabe des
ffprobe
Befehls innerhalb der Backticks wird direkt erweitert, um 0 des Audio-Codecs der Eingabedatei zu streamen, wobei die neue Zeile von entfernt wirdxargs
.ffprobe
wurde so eingestellt, dass nur eine minimale Textmenge ausgegeben wird, und die Ausgabe desffprobe
Standard- "Writers" wurde so konfiguriert, dass beim Schreiben auf den Bildschirm alle anderen überflüssigen Texte wie Beschriftungen usw. entfernt werden.Ich wollte das Resampling mit höherer Qualität mit dem
SoX
Resampler testen, also habe ich eine WAV-Datei von 44,1 kHz auf 96 kHz hochgesampelt, während ich den gleichen Codec beibehalten habe. Ohne dies zu tun, hatte der Codec, der automatisch von ausgewählt wurde,ffmpeg
eine geringere Bittiefe, wodurch die Auflösung von 24 Bit auf 16 Bit sank. Auf diese Weise gab es keinen Präzisionsverlust.quelle