2017-12-21 30 views
0

Ich habe einen Ordner mit Dutzenden von DMV-Dateien, aber ich möchte sie in MP4 über die Befehlszeile konvertieren. Ich habe erfolgreich in der Lage gewesen, so mit dem folgenden Befehl zu tun:Konvertieren Sie MKV-Dateien in MP4 unter Beibehaltung des Namens

ffmpeg -i *.mkv -vcodec copy -acodec copy new_name.mp4 

Das, was ich jetzt, um herauszufinden, ich versuche, ist, wie der Name des Videos zu erhalten. Wie kann ich das tun, ohne jedes Mal explizit den Dateinamen zu schreiben?

+1

Dein Titel sagt, dass du 'wkv' Dateien hast, dein Text sagt, dass du' dmv' Dateien hast und dein Code sagt, dass du 'mkv' Dateien hast - was ist das bitte? Sind sie alle in einem Verzeichnis? –

+0

Ich werde das bearbeiten, ich meinte mkv. Ja alle im selben Verzeichnis. – user906357

Antwort

2

können Sie find mit Ihrem ursprünglichen Befehl kombiniert verwenden, um alle mkv des konvertieren:

find . -type f -name "*.mkv" -maxdepth 1 \ 
-exec bash -c 'ffmpeg -i "$0" -vcodec copy -acodec copy "${0/.mkv/.mp4}"' {} \; 

Dies sollte jede mkv Datei im aktuellen Verzeichnis zu mp4 konvertieren, während das Original zu halten.

Wenn Sie die ursprünglichen mkv Dateien entfernen bevorzugen und nur mp4 Restnutzdaten:

find . -type f -name "*.mkv" -maxdepth 1 \ 
-exec bash -c 'ffmpeg -i "$0" -vcodec copy -acodec copy "${0/.mkv/.mp4}"' {} \; \ 
-exec rm {} \; 
2

Sie GNU Parallel verwenden können, dies zu erreichen, wenn alle Videos in demselben Ordner verwenden:

parallel --bar 'ffmpeg -i {} -vcodec copy -acodec copy {.}.mp4' ::: * 
Verwandte Themen