2014-11-16 11 views
9

Aggiungendo una traccia .ass sottotitoli a un video mkv con ffmpeg, non è impostato come traccia predefinita, quindi durante la riproduzione è necessario attivare manualmente i sottotitoli. È possibile impostare il flag di default per la traccia dei sottotitoli? Comandoffmpeg imposta sottotitoli traccia come predefinito

ffmpeg utilizzato:

ffmpeg -i video.mp4 -i subtitles.ass -c:v libx264 -preset veryslow \ 
-pix_fmt yuv420p10le -c:a copy -c:s copy output.mkv 

Nota che voglio mantenere .ass formato dei sottotitoli, non convertire i sottotitoli per mov_text come suggerito in questa domanda simile: How to set default streams with ffmpeg

V'è la possibilità di impostare il flag predefinito in seguito con mkvpropedit in questo modo:

mkvpropedit output.mkv --edit track:s1 --set flag-default=1 

Ma è possibile farlo direttamente con ffmpeg?

+0

SO è probabilmente il sito sbagliato per questa domanda, ma la domanda stessa è valida. Ho lo stesso problema. – Tobia

risposta

14

Penso che come per this patch questo è ora possibile. Almeno per me funziona con:

ffmpeg -i in.mp4 -i in.srt -c copy -disposition:s:0 default out.mkv 

Nota s in -disposition:s:0 in questo caso sta per sottotitolo e non flusso. Per selezionare il secondo vapore per indice utilizzare -disposition:1.

+2

A partire da v.3 'ffmpeg' ha già implementato' -disposition' ma non ancora documentato. – Kondybas

+0

'-disposition' è stato recentemente documentato. – LordNeckbeard

4

È possibile utilizzare 'costretti' al posto di predefinito per forzare vlc giocare

ffmpeg -f mp4 -i outfile.mp4 -f srt -i VTS_07_0.EnglishV2.srt -c:v copy -c:a copy -metadata:s:a:0 language=Japanese -c:s mov_text -metadata:s:s:0 language=English -disposition:s:s:0 forced mix.mp4 
Problemi correlati