Die Konvertierung von FFMPEG mkv in mp4 verliert Untertitel

11

Ich versuche gerade, meine MKV-Bibliothek in MP4 (Iphone 6 plus) zu konvertieren.

Ich habe es geschafft, die Konvertierung von mkv in mp4 korrekt zu erreichen, aber mir fehlt der Untertitelteil (SRT).

Hier ist mein Code:

dir/b/s *.mkv >mkvlist.txt   ///////// this gets a list of all the mkv files on the directory

for /F "delims=;" %%F in (mkvlist.txt) do ffmpeg.exe  -i "%%F" -format mp4 -vcodec copy -acodec aac -strict -2 -sn "%%~dF%%~pF%%~nF.mp4"   ///////////// this makes the conversion

del mkvlist.txt     ////// this deletes the txt file

Ich möchte Untertitel in das Skript aufnehmen, habe jedoch Probleme, den richtigen Namen für die Untertitel in das Skript einzufügen (da dies ein Stapel mit mehreren Konvertierungen ist).

dpkmon
quelle
.mkv-Dateien haben ein Containerformat. Es ist sehr wahrscheinlich, dass die mkv-Datei eine .srt-Datei enthält, die Sie extrahieren können. Stellen Sie sicher, dass es den gleichen Namen wie die MP4-Datei hat und funktionieren sollte. Die mkv-Datei kann tatsächlich auch eine mp4-Datei enthalten, kann aber auch ein .divx-, .avi-Format oder ein anderes Videoformat haben.
LPChip

Antworten:

17

MP4 unterstützt SRT nicht. Sie können entweder Softsubs oder Hardsubs verwenden.

Softsubs

Untertitel, die als separater Stream in der Datei bestehen. Sie können vom Player ein- und ausgeschaltet werden und erfordern keine Neucodierung des Videostreams.

ffmpeg -i input.mkv -c copy -c:s mov_text output.mp4

Die Player-Unterstützung für zeitgesteuerte Text-Softsubs in MP4 kann ziemlich schlecht sein. Sie müssen es nur versuchen.

Hardsubs

Hardsubs werden in das Video "eingebrannt", sodass das Video neu codiert werden muss.

ffmpeg -i input.mkv -vf subtitles=input.mkv output.mp4

Weitere Informationen finden Sie in der Dokumentation zum Susbtitles-Filter, z. B. zur Auswahl eines bestimmten Untertitel-Streams, wenn mehrere vorhanden sind.

llogan
quelle
Können Sie mir helfen, meinen Code besser zu verstehen? Wo und warum würden Sie die Neucodierung für die Subs hinzufügen? (Und wenn Sie sich eine Lösung oder eine Möglichkeit vorstellen können, alle Dateien in den Unterordnern mit den entsprechenden Unterordnern stapelweise zu konvertieren?) (Wenn keine Untertitel vorhanden sind, muss die Datei insgesamt übersprungen und mit der nächsten fortgefahren werden.
dpkmon
2

Ich hatte ein ähnliches Problem beim Wechseln von MP4 zu MKV von einigen MP4-Dateien, die ich mit Handbrake gerippt habe. Ich habe zuerst https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/subtitle_options konsultiert , was bestimmte Untertitelformate für mkv vs mp4 implizierte. Nachdem ich mit Ass- und Mov_text-Konvertierungen herumgespielt hatte, die nicht funktionierten, testete ich einige Dateien und bemerkte, dass das Format dvd_subtitle angezeigt wurde. Nach vielem Herumspielen hat folgendes geklappt.

ffmpeg -i "\\server\directory\Sourcefile.mp4" -c:v copy -c:a copy -c:s dvd_subtitle "\\server\directory\Outputfile.mkv"

Ich hoffe es hilft.

Von Rugen
quelle