2014-11-16 25 views
9

Dodając ścieżkę napisów .ass do filmu mkv za pomocą ffmpeg, nie jest ona ustawiona jako domyślna, więc podczas odtwarzania trzeba ręcznie włączyć napisy. Czy można ustawić flagę domyślną dla ścieżki napisów? Komendaffmpeg ustaw domyślną ścieżkę napisów

ffmpeg używane:

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

Zauważ, że chcę zachować .ass format napisów, nie konwersji napisów do mov_text jak sugerowano w tym podobnym pytaniem: How to set default streams with ffmpeg

Istnieje możliwość ustawienia domyślnej flagi z mkvpropedit w następujący sposób:

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

Ale czy można to zrobić bezpośrednio za pomocą ffmpeg?

+0

SO jest prawdopodobnie źle miejsce na to pytanie, ale sama kwestia jest ważna. Mam ten sam problem. – Tobia

Odpowiedz

14

Myślę, że zgodnie z this patch jest to teraz możliwe. Przynajmniej dla mnie to działa z:

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

Uwaga s w -disposition:s:0 w tym przypadku oznacza napisy i nie strumień. Aby wybrać drugą parę według indeksu, użyj -disposition:1.

+2

Od wersji v.3 'ffmpeg' ma już' -disposition' zaimplementowaną, ale jeszcze nie udokumentowaną. – Kondybas

+0

'-disposition' zostało ostatnio udokumentowane. – LordNeckbeard

4

Można użyć „zmuszony” zamiast domyślnie zmusić VLC grać to

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