Kann ich diese beiden Befehle irgendwie zu einem einzigen kombinieren?

Kann ich diese beiden Befehle irgendwie zu einem einzigen kombinieren?

Ich habe Videodateien im Format MP4. Diese muss ich in MP2 konvertieren. Wenn sie im MP2-Format jedoch eine bestimmte Dateigröße überschreiten, muss ich sie auch in kleinere Dateien zerlegen.

Dafür stehen mir aktuell zwei Befehle zur Verfügung:

Konvertierungsbefehl

ffmpeg -i INPUTfile -codec:v mpeg2video -qscale:v 0 OUTPUTfile

Schneidebefehl (die Zeitwerte dienen nur als Beispiel)

ffmpeg -ss 00:00:00.00 -i INPUTfile -to 00:10:00.00 -c copy -copyts OUTPUTfile

Derzeit konvertiere ich die Videodatei und überprüfe die Dateigröße. Wenn sie zu groß ist, schneide ich zuerst die Originalvideodatei und konvertiere dann die „Teile“ in MP2.

Ich bin neu bei ffmpeg und habe mich gefragt, ob ich diese beiden Befehle in einem kombinieren kann. Ich muss noch einmal eine MP4-Datei konvertieren und zerschneiden. Ob ich zuerst die Konvertierung mache und später schneide oder umgekehrt, ist mir eigentlich egal.

Ich muss den Schneidebefehl mehrmals ausführen, da ich programmgesteuert entscheide, in wie viele „Teile“ ich die Datei schneide. Das Endergebnis muss jedoch im MP2-Format vorliegen, unabhängig davon, wie viele „Teile“ ich am Ende habe.

Antwort1

Da Ihr zweiter Befehl die Zeitaufteilung durchführt, ist dies der beste Ausgangspunkt für das „Zusammenführen“ dieser Befehle.

Sie sollten einfach in der Lage sein, die durch die entsprechenden Codec-Konvertierungsparameter aus Ihrem ersten Befehl zu ersetzen -c copy -copyts. Diese Parameter bedeuten im Grunde „kopieren Sie den Stream einfach so, wie er ist“, während die anderen Zeitparameter Start- und Stopppunkte festlegen. Daher können wir „den Stream kopieren“ aus Ihrem ersten Befehl in „das Video konvertieren“ ändern.

Die Parameter aus Ihrem ersten Befehl, die sich auf die Konvertierung von MP4 in MP2 beziehen, sind -codec:v mpeg2video -qscale:v 0. Das codec:v mpeg2videobedeutet, ffmpegdass der MPEG2Video-Encoder verwendet werden soll, und qscale0 bedeutet „beste Qualität“.

Auf jeden Fall gibt Ihnen eine schnelle Transposition

ffmpeg -ss 00:00:00.00 -i INPUTfile -to 00:10:00.00 -codec:v mpeg2video -qscale:v 0 OUTPUTfile

verwandte Informationen