Реализация отображения субтитров c ++ с помощью библиотеки платины

Может кто-нибудь объяснить мне, если это возможно для стандартного DLNA передать информацию о доступных внешних субтитрах (файлы .srt) при воспроизведении медиа-файлов (видео) без транскодирования видеофайла.

Если это возможно, может кто-нибудь показать мне, где это объясняется в стандарте DLNA? или как это можно реализовать?

Я пытаюсь реализовать это с помощью библиотеки платины и не знаю, как это сделать или если это возможно.

Спасибо

1

Решение

Возможный? Да. Стандартизированный? Нет. Надежно? Точно нет. Там нет спецификации, как правильно делать субтитры, ни в UPnP, ни в DLNA. В конечном счете, это вопрос того, как DMR хочет, чтобы субтитры обслуживались DMS, поэтому это в значительной степени зависит от конкретного DMR, который вы хотите использовать. Некоторые DMR требуют отдельного нестандартного поля DIDL-Lite в описании мультимедиа (телевизоры Samsung, кажется, <sec:CaptionInfoEx>), некоторые DMR довольны чем-то вроде стандарта <res protocolInfo="http-get:*:text/srt:*">, Конечно, оба случая содержат URL-адрес вашего файла SRT. Вполне возможно, что ваш DMR вообще не поддерживает субтитры. Нет такого требования ни в UPnP, ни в DLNA (я уже говорил это?).

Таким образом, Platinum не имеет поддержки субтитров из коробки. Вы можете создать <res> тег с существующей логикой — настройка PLT_ProtocolInfo с ContentType text / srt и назначением PLT_MediaItemResource с m_Uri вашего файла SRT (обслуживается вашей DMS).

Добавление нового поля более сложно, PLT_Didl имеет фиксированный набор полей, которые вы должны расширить вместе с PLT_MediaObject::ToDidl который довольно исправлен в своей работе. Я считаю, что эта часть Platinum несколько поторопилась по сравнению с видимыми усилиями по проектированию, приложенными к остальной части платформы.

В любом случае, ваша DMS также должна быть готова выступать в качестве HTTP-сервера для ваших субтитров, что означает предоставление возможности любому классу, который у вас есть, в качестве реализации PLT_MediaServerDelegate::ProcessFileRequest,

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]