Pytanie ffmpeg ustaw domyślnie ścieżkę napisów


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

Używana komenda ffmpeg:

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 przekonwertuj napisy na mov_text, jak sugeruje to podobne pytanie: Jak ustawić domyślne strumienie za pomocą ffmpeg

Istnieje możliwość ustawienia domyślnej flagi za pomocą 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?


14
2017-11-16 12:09


pochodzenie


SO jest prawdopodobnie niewłaściwą stroną dla tego pytania, ale samo pytanie jest poprawne. Mam ten sam problem. - Tobia


Odpowiedzi:


Myślę, że zgodnie z ta łatka to jest 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 podtytuł i nie strumień. Aby wybrać drugie użycie pary przez indeks -disposition:1.


17
2018-02-05 23:28



Od wersji v.3 ffmpeg już mam -disposition zaimplementowane, ale jeszcze nie udokumentowane. - Kondybas
-disposition zostało ostatnio udokumentowane. - LordNeckbeard


Możesz użyć 'wymuszonego' zamiast domyślnego, aby zmusić vlc do grania

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

6
2017-11-21 01:22