Mit nur den Informationen, die Sie zur Verfügung gestellt haben, kann ich mir das vorstellen.
Gehen wir in Stücke:
Da dem Video nur ein Bild hinzugefügt wird. Ich frage mich, ob es eine Möglichkeit gibt, die Videogröße zu reduzieren, z. B. Bitrate erzwingen / Sekunde = 1 statt 28?
Da es sich um ein Standbild handelt, müssen Sie keine Änderungen vornehmen. Bleib einfach still stehen.
Was du dort redest, sind Bilder pro Sekunde (fps), nicht Bitrate. Und Sie haben Recht mit dem Konzept. Nur ein Standbild mit 1 fps wäre kein Problem.
Ist es eine vernünftige Größe für mp4? Ist die Bildgröße sehr wichtig?
In diesem Fall hätte die Bildgröße kein signifikantes Gewicht, da es sich nur um ein Standbild handelt. Wenn es sich um ein qualitativ hochwertiges Video handelt, ist dies ein anderes Problem.
Sollte ich die Größe von jpg auf 1080 * 720 ändern und zusätzliche Einstellungen in ffmpeg vornehmen, um sie als 720p auszugeben (wie lautet dann die ffmpeg-Einstellung :)?
Die Auflösung, die Sie sagen, ist 1280x720.
Ich sehe den Punkt in der -loop 1
Option hier nicht, es wird nur den Prozess verlangsamen. Haben Sie verwendet, -shortest
weil die Datei mehr als 1 Eingabestream hat? Wenn nein, gibt es keinen Grund, es zu benutzen. Da Sie verwendet haben, muss -acodec copy
ich davon ausgehen, dass Sie es nicht neu codieren möchten.
Für eine Ausgabe von 720p 1fps ohne Neucodierung und ohne Bitrate zu berühren:
ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -s 1280x720 output.mp4
Stellen Sie sich vor, es hat mehr als einen Eingabestream und Sie möchten, dass ffmpeg die Codierung am kürzesten Stream beendet:
ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -s 1280x720 -shortest output.mp4
Wenn Sie nun die Bitrate ändern müssen (sagen wir 1024k als Beispiel);
ffmpeg -framerate 1 -i input.mp3 -i cover.jpg -c:a copy -b:v 1024k -bufsize 1024k -s 1280x720 output.mp4
Siehe: Begrenzen Sie die Ausgangsbitrate
-c: a copy = Kopiert den eingegebenen Audiostream, damit wir ihn nicht neu codieren.
-b: v = Die angegebene Bitrate ist (nicht genau) konstant.
-bufsize = Dies ist das Intervall, in dem die durchschnittliche Bitrate berechnet wird. Dies bedeutet das Bild mit der niedrigsten Verlustqualität, aber genaueren Bitraten gemäß den Angaben in -b: v .
-s = Die tatsächliche Größe der Videoausgabe.
-framerate = Die Eingabe- Framerate , die die Ausgabe verwenden soll.
Beachten Sie, dass Sie die Qualität opfern müssen, um dies zu erreichen, wenn Sie an einem Punkt immer noch ein kleineres Video möchten. Andere Möglichkeiten sind das Neucodieren mit verlustbehafteter Komprimierung.
Nach dem, was Sie sagen, den Informationen, die Sie bereitstellen, und dem, was Sie versuchen zu tun, scheint es Ihr Ziel zu sein, Albumcover in MP3 einzubetten. Wenn das Ihr Ziel ist, würde dies Ihren Anforderungen besser entsprechen:
ffmpeg -i input.mp3 -i cover.jpg -map_metadata 0 -map 0 -map 1 output.mp3
-map_metadata = Der ffmpeg-Metadatenspezifizierer zum Ausgeben der Datei aus der Datei. In diesem Fall ( Null ) die globalen Metadaten.
-map 0 = Eingangsstrom 1 (Audio).
-Karte 1 = Eingabestream 2 (Bild).
Wenn hier nichts zu Ihren Wünschen passt, geben Sie bitte weitere Informationen.