Может ли ffmpeg создать фильм с дорожкой субтитров, помеченной для автоматической видимости?

Например, в VLC я должен вручную включить дорожку субтитров из меню Subtitle. Было бы здорово, если бы субтитры появлялись без какого-либо вмешательства.

Я нашел это на stackoverflow:

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

Но он выбирает дорожку субтитров по умолчанию из нескольких дорожек, которые не делают субтитры видимыми при запуске фильма.

2 ответа2

0

Вы можете использовать MP4Box 0.6.2-DEV-rev453 (май 2016 г.) или выше, чтобы сделать это:

mp4box -add xr.mp4 -add xr.en.srt:txtflags=0xC0000000 -new ya.mp4

Это пометит поток субтитров в выходном файле как принудительный. Однако этот знак будет распознаваться только начиная с этих версий программ:


Я видел упоминания об этом посте в списке рассылки FFmpeg о патче, который реализует расположение для FFmpeg:

ffmpeg -i xr.mp4 -i xr.en.srt -c copy -c:s mov_text -disposition:s forced ya.mp4

Однако после того, как он попробовал это с "принудительно" и "по умолчанию", субтитры, отмеченные FFmpeg, не распознаются как принудительно ни MPC-HC, ни VLC.


Чтобы ответить на комментарий, вот тест с MP4Box 0.7.0 (апрель 2017 г.) и VLC 3.0.0-20170926 (сентябрь 2017 г.). Обратите внимание, что в более поздних версиях VLC возникают проблемы, даже на видео без субтитров. Используя этот файл:

youtube-dl --write-auto-sub --format 18 --output xr.mp4 kcs82HnguGc
ffmpeg -i xr.en.vtt xr.en.srt
mp4box -add xr.mp4 -add xr.en.srt:txtflags=0xC0000000 -new ya.mp4

Результат:

суб

0

Это связано с VLC.
Вы можете включить автоматическую видимость субтитров в VLC, написав слово any в меню Инструменты ==> Параметры ==> Субтитры /OSD ==> Предпочитаемый язык субтитров.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .