La conversione da mkv a mp4 di FFMPEG perde i sottotitoli


11

Attualmente sto cercando di convertire la mia libreria mkv in mp4 (Iphone 6 plus)

Sono riuscito a ottenere correttamente la conversione da mkv a mp4, ma mi manca la parte dei sottotitoli (SRT)

Ecco il mio codice:

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

Vorrei includere i sottotitoli nello script, ma ho difficoltà a inserire il nome corretto dei sottotitoli nello script (poiché si tratta di un batch di conversione multipla).


I file .mkv sono in formato contenitore. È molto probabile che il file mkv contenga un file .srt che puoi estrarre. Assicurati che abbia lo stesso nome del file .mp4 e dovrebbe funzionare. Il file mkv potrebbe effettivamente contenere anche un file mp4 ma può anche avere un .divx, .avi o qualsiasi altro formato video.
LPChip,

Risposte:


17

MP4 non supporta SRT. Puoi usare softsub o hardsub.

softsub

Sottotitoli che consistono in un flusso separato nel file. Possono essere attivati ​​/ disattivati ​​dal lettore e non è necessario ricodificare il flusso video.

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

Il supporto del lettore per i softsub con testo temporizzato in MP4 può essere piuttosto scarso. Dovrai solo provarlo.

hardsubs

Gli hardsub vengono "masterizzati" nel video, quindi il video deve essere ricodificato.

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

Consultare la documentazione del filtro susbtitles per ulteriori informazioni, ad esempio su come selezionare un determinato flusso di sottotitoli se ne esiste più di uno.


Potresti aiutarmi a capire meglio il mio codice? Dove e perché dovresti aggiungere la ricodifica per i sottotitoli? (E se riesci a pensare a una soluzione o un modo per convertire in batch tutti i file nelle sottocartelle con i loro sottotitoli corrispondenti?) (Se non ci sono sottotitoli, allora dovrebbe saltare del tutto il file e passare a quello successivo.
dpkmon,

2

Ho avuto un problema simile passando da MP4 a MKV da alcuni file mp4 che ho strappato con freno a mano. Ho consultato prima https://en.wikibooks.org/wiki/FFMPEG_An_Intermediate_Guide/subtitle_options , che implicava particolari formati di sottotitoli per mkv vs mp4. Dopo aver giocato con le conversioni ass e mov_text che non funzionavano, ho testato alcuni file e ho notato che appare il formato dvd_subtitle. Dopo aver giocato un sacco di cose, ha funzionato.

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

Spero che sia d'aiuto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.