Verketten von AVI-Dateien mit mehreren Spuren


2

Ich habe ein Verzeichnis mit AVI-Dateien, die ich zu einer einzigen AVI-Datei zusammenfassen möchte. Diese AVI-Dateien stammen von einer Dashcam und haben zwei Videospuren - eine Frontkamera und eine Rückkamera.

Ich habe versucht, den Vorschlag hier zu verwenden, um die Videos zu kombinieren. Speziell:

ffmpeg -f concat -i <(for f in $PWD/*.avi;do echo "file '$f'";done) -c copy output.avi

Dies funktioniert hervorragend für die erste (vordere) Videospur, entfernt jedoch die zweite (hintere) Videospur vollständig.

Wie kann ich diese Dateien verketten und beide Videospuren beibehalten? Gibt es eine Möglichkeit, die zu verkettende Videospur anzugeben?

Antworten:


1

Grundsätzlich müssen Sie jede Datei demultiplexen und dann die resultierenden Dateien verketten. Es gibt eine Möglichkeit, dies mit dem Concat-Filter zu tun , aber es muss alles neu codiert werden.

Sie müssen also zwei Operationen ausführen. Erstens, Demultiplex. (Beachten Sie, dass dies mit ffmpeg nicht getestet wurde, da ich keine Videodateien zum Testen habe, aber theoretisch funktionieren sollte.)

I=0;J=1;for f in $PWD/*.avi;do ffmpeg -i "$f" -map 0:v:0 -codec copy output$I.avi -map 0:v:1 -codec copy output$J.avi && I=$(($I+1)) && J=$(($J+1));done

Dann können Sie den concat-Demuxer wie gewohnt verwenden:

ffmpeg -f concat -i <(for f in $PWD/*.avi;do echo "file '$f'";done) -c copy output.avi

Das hat super geklappt. Die einzige Änderung, die ich vorgenommen habe, ist: I = 0; J = 1; für f in $ PWD / * .avi; mache ffmpeg -i "$ f" -map 0: v: 0 -codec kopiere front $ I.avi -map 0: v: 1 -codec kopiere zurück $ J.avi && I = $ (($ I + 1)) && J = $ (($ J + 1)); fertig und ändere dann einen entsprechenden Dateinamen zum Verkettungsbefehl. Ich würde bearbeiten, aber ich habe nicht den nötigen Ruf. Vielen Dank!
Erik

1
Wenn Sie das tun, können Sie verlieren J=1;und J=$(($J+1));und ändern back$J.avizu back$I.avi- mit verschiedenen Ausgabedateinamen kann die Anzahl der für beide gleich sein.
Tubedogg

Richtig. Schöne Vereinfachung.
Erik
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.