Проблемы с субтитрами в DLNA: как решить их с помощью mkvmerge и ffmpeg
Субтитры играют значимую роль в улучшении восприятия видеоконтента, однако многие пользователи сталкиваются с проблемами при добавлении субтитров в видеофайлы для воспроизведения через DLNA-устройства. Особенно распространенной проблемой является отсутствие отображения дорожки субтитров в DLNA, несмотря на то что субтитры корректно отображаются в вашем медиаплеере. В этой статье мы рассмотрим, как можно исправить эту ситуацию с помощью команд mkvmerge и ffmpeg.
Почему DLNA не распознает субтитры?
При добавлении субфайлов формата SRT к видео с использованием утилиты mkvmerge, существует вероятность, что DLNA не распознает дорожку субтитров. Несмотря на то что VLC, Parole и инструмент mkvinfo подтверждают наличие дорожки субтитров, DLNA (например, в Kodi) не отображает доступные субтитры. Это может быть связано с особенностями кодирования и метаданных, которые используются при создании файла.
Пример добавления субтитров с помощью mkvmerge
Чтобы добавить субтитры к видеофайлу с использованием mkvmerge и задать язык и название дорожки, можно воспользоваться следующей командой:
mkvmerge ./input.mp4 ./sub.srt --language 0:eng --track-name 0:English -o ./output.mkv
Здесь input.mp4
— это ваш исходный видеофайл, а sub.srt
— файл с субтитрами. Данная команда создаст новый файл output.mkv
, содержащий ваши субтитры.
Проверка дорожек в файле
Чтобы убедиться, что дорожка субтитров была добавлена, можно воспользоваться инструментом mkvinfo
и выполнить команду:
mkvinfo output.mkv
Вывод будет содержать информацию о треках, включая их тип, кодек и язык. Например, он может выглядеть следующим образом:
| + A track
| + Track number: 3 (track ID for mkvmerge & mkvextract: 2)
| + Track UID: 242538611406166008
| + Track type: subtitles
| + Codec ID: S_TEXT/UTF8
| + Language: und
Таким образом, мы можем ожидать, что дорожка будет отображена в медиаплеерах. Однако DLNA-устройства могут продолжать игнорировать эту дорожку.
Решение проблемы: жесткое кодирование субтитров
Если использование стандартных методов не решает проблему, можно прибегнуть к жесткому кодированию субтитров. Это означает, что субтитры будут встроены непосредственно в видео, что гарантирует их отображение на всех платформах, включая DLNA.
Вы можете использовать следующую команду с ffmpeg
для жесткого кодирования субтитров:
ffmpeg -i ./input.mp4 -i s.srt -c:v copy -c:a copy -c:s mov_text -metadata:s:s:0 language=eng -disposition:s:0 default ./output.mkv
Эта команда создает новый файл output.mkv
, в который включены субтитры, что обеспечит их отображение на любых устройствах без каких-либо дополнительных настроек.
Вывод
Проблемы с распознаванием субтитров в DLNA могут быть неприятным сюрпризом для пользователей. Используя утилиты mkvmerge и ffmpeg, вы можете настроить свой видеоконтент так, чтобы субтитры отображались корректно на всех устройствах. Если DLNA все же не распознает дорожку субтитров, рекомендуется использовать жесткое кодирование, что обеспечит бесперебойное воспроизведение субтитров в вашем видео.