Ich habe 1 Bild (JPG) und 1 Audiodatei (MP3) und möchte diese als Videodatei ausgeben (z. B. AVI).
Weiß jemand, wie man FFMPEG benutzt, um die beiden zu verbinden? Ich möchte das Bild für die Dauer des Audios zeigen.
Irgendwelche Ideen jemand?
video
audio
ffmpeg
concatenation
user41559
quelle
quelle
Antworten:
Wenn Sie in Windows sind, können Sie dies auch in Windows Movie Maker tun. Wenn Sie Anweisungen benötigen, hinterlassen Sie bitte einen Kommentar
Verwenden Sie dies für FFmpeg
vframes 14490 ist die Anzahl der Frames, die geloopt werden sollen, um ein fortlaufendes Bild für die gesamte audio.mp3-Datei zu erhalten
Beispiel: 8 Minuten und 3 Sekunden lang ((8 m × 60 s + 3 s) × 30 fps = 14490 vf)
Ressource von hier
quelle
Es gibt einen viel einfacheren Weg als den hier vorgeschlagenen, bei dem nicht die Anzahl der Frames berechnet oder die Länge einzelner Dateien eingegeben werden muss (insbesondere besser für die Stapelverarbeitung). In einer neueren Version von ffmpeg können Sie die
-shortest
Option verwenden, die die Codierung beendet, wenn der kürzeste Stream endet - in diesem Fall input.mp3 (da das Bild für immer eine Schleife hat und eine unendliche Länge hat):Dies verwendet 2 Bilder pro Sekunde für das Bild / Video, was in Ordnung sein sollte, aber Sie können es auf einen Standardwert von 25 einstellen, wenn Sie möchten.
quelle
Subanki hatte es fast richtig. Die Arbeitsbefehlszeile lautet wie folgt:
Überschreiben Sie Ausgabedateien ohne Aufforderung
Die Option '-loop_input' ist mit -loop 1 veraltet. Siehe ffmpeg-Dokumentation .
Eingabedatei (en)
Bilder pro Sekunde Könnten auch ausgedrückt werden als: -r 30000/1001, was eine fps von 29,97 nnn ergibt
Video-Bitrate; Je höher die Zahl, desto besser die Qualität und desto größer die Dateigröße.
Wie oben erklärt; Nehmen Sie die Gesamtzeit Ihrer Audiodatei in Sekunden (z. B. 00:02:41 (2 Minuten 41 Sekunden) entspricht 161 Gesamtsekunden (2 x 60) + 41). Multiplizieren Sie dann die Gesamtzahl der Sekunden mit den von Ihnen angegebenen Bildern pro Sekunde mit -r (z. B. 161 x 30 = 4830).
-vframes können durch -t 161 ersetzt werden (-t Daueraufzeichnung oder Transcodierung der "Dauer" Sekunden von Audio / Video)
Verwenden Sie den richtigen Audio-Codec für den Dateityp, den Sie erstellen. Für .mp4 sollte es ein AAC-Format sein. Der Codec libvo_aacenc war der richtige Codierungscodec für mein Windows 7-System.
Audio Bitrate
Dies ist der Name der Ausgabedatei. Es kann sich um einen beliebigen legalen Dateinamen für Ihr System handeln. Die Erweiterung hilft ffmpeg dabei, den richtigen Video-Codec zu ermitteln, wenn Sie keinen mit -vcodec angeben.
quelle
Dieses einfache Bash / Cygwin-Skript, das AUTOMAGISCH alle Dateien mit der Erweiterung $ AUDIO im Verzeichnis in eine 10FPS-MP4-Videodatei im Verzeichnis mit eingebettetem Bild folder.jpg codiert.
nützlich für YouTube-Uploads;)
quelle
Laden Sie VirtualDub herunter und gehen Sie folgendermaßen vor:
Öffnen Sie das Bild wie eine normale Videodatei.
Berechnen Sie die Dauer des Audios in Sekunden und runden Sie es auf die nächste ganze Sekunde auf (z. B. 78,34 Sekunden werden 79 Sekunden). Dieser Wert heißt ab sofort x.
Gehen Sie zu "Video> Bildrate", wählen Sie "Auf Bildrate ändern (fps)" und geben Sie "1 / x" als Wert ein. Wenn Sie in der resultierenden Datei eine normale Bildrate wie 25 fps haben möchten, wählen Sie außerdem "In fps konvertieren" und geben Sie dort die gewünschte Bildrate ein.
Wählen Sie "Video> Komprimierung" und wählen Sie Ihren Lieblingsgeschmack. Es kann sein, dass Sie die Größe des Bildes mit dem Größenänderungsfilter anpassen müssen.
Gehen Sie zu "Audio> Audio aus anderer Datei" und wählen Sie dort Ihr Audio aus. Wählen Sie bei Bedarf eine Komprimierung für das Audio.
Speicher die Datei.
Quelle: stephanV
quelle