使用铂库实现 c++ DLNA 字幕显示
c++ DLNA subtitle display implementation with platinium library
谁能解释一下,在不转码视频文件的情况下播放媒体文件(视频(时,是否有可用的外部字幕(.srt文件(的DLNA标准通行证信息。
如果可能的话,谁能告诉我DLNA标准中在哪里解释了这一点?或者如何实现?
我正在尝试使用铂库实现这一点,但不知道如何做,或者这是否可能。
谢谢
可能吗?是的。标准化?不。可靠?绝对不行。没有关于如何正确制作字幕的规范,无论是在UPnP还是DLNA中。归根结底,DMR希望DMS如何提供字幕的问题,因此这在很大程度上取决于您要使用的特定DMR。一些DMR在媒体描述中需要特定的非标准DIDL-Lite字段(三星电视似乎正在推广<sec:CaptionInfoEx>
(,一些DMR对类似标准的<res protocolInfo="http-get:*:text/srt:*">
感到满意。当然,这两种情况都包含SRT文件的URL。您的 DMR 完全可能根本不支持字幕。UPnP 或 DLNA 中都没有这样的要求(我已经说过了吗?
因此,白金没有任何开箱即用的字幕支持。您可以使用现有逻辑创建<res>
标记 - 使用文本/srt的ContentType设置PLT_ProtocolInfo
,并使用SRT文件(由DMS提供(m_Uri
分配给PLT_MediaItemResource
。
添加新字段更加棘手,PLT_Didl
有一组固定的字段,您必须与PLT_MediaObject::ToDidl
一起扩展,这在其操作中非常固定。我认为Platinum的这一部分有点仓促,与框架其余部分的可见设计工作相比。
无论如何,您的DMS还必须准备好充当字幕的HTTP服务器,这意味着将权力交给您拥有的任何类作为PLT_MediaServerDelegate::ProcessFileRequest
的实现。