Wie kombiniere ich diese beiden FFmpeg-Befehle zu einem Befehl?

Wie kombiniere ich diese beiden FFmpeg-Befehle zu einem Befehl?

Ich verwende ffmpeg, um mehrere .mp4Dateien zu ändern.

Zuerst verwende ich diesen Befehl, um die Standardsprache von engauf zu ändern fr.

ffmpeg.exe -i "imput 1.mp4" -map 0 -c copy -disposition:a:0 0 -disposition:a:1 default "Output 2.mp4" 

Dann möchte ich diesen Befehl verwenden, um Soft-Untertitel aus der .srtDatei zur hinzuzufügen .mp4.

ffmpeg.exe -i "Input 1.mp4" -i "Input 2.srt" -c copy -c:s mov_text -metadata:s:s:0 language=fr "Output 1.mp4"

Diese beiden Befehle funktionieren unabhängig voneinander, aber ich möchte sie in einer Zeile kombinieren.

Ich habe so etwas versucht, aber nur der Ton ändert sich, auf die Untertitel gibt es keine Auswirkungen.

ffmpeg.exe -i "Input 1.mp4" -i "Input 2.srt" -map 0 -c copy -disposition:a:0 0 -disposition:a:1 default -c:s mov_text -metadata:s:s:0 language=fr Output 1.mp4"

Ich weiß, dass etwas nicht stimmt, aber ich komme nicht dahinter.

Kann mir jemand sagen, was mit meinem kombinierten Kommando nicht stimmt?

Wie ich bereits sagte, arbeite ich an mehreren Dateien (genau 314) und jede Datei hat ihren eigenen Namen und es ist mühsam, den Dateinamen jedes Mal manuell zu ändern. Gibt es eine Möglichkeit, dies für jede in einem Verzeichnis vorhandene Datei zu tun?

Antwort1

Versuchen Sie Folgendes in dem Ordner, in dem sich die Videos und Untertitel befinden. Öffnen Sie die Eingabeaufforderung und verwenden Sie diesen Befehl:

for %a in (*.mkv *.mp4) do ffmpeg -i "%a" -i "%~na.srt" -map 0 -map 1:s:0 -disposition:a:0 0 -disposition:a:1 default -c copy -metadata:s:s:0 language=fr "%~na_new.%~xa"

Es sollte ein neues Video mit demselben Namen wie das alte erstellt werden, jedoch mit einem „Neu“ im Namen und geändertem Audio und Untertiteln.

verwandte Informationen