问题描述
我正在尝试将 MP4 视频上传到 Azure 媒体服务;使其可通过流式传输 URL 进行流式传输,以及更重要且特别针对此问题:上传要在视频中显示的 .VTT 字幕。
我致力于在此 tutorial 中集成代码,更具体地说,将 EncodeAndStreamFiles 示例应用(在文档中描述)作为 DotNetCore API。
我设法检索了视频的流媒体网址列表,并且流媒体运行良好(视频可播放)。
下一步是上传 .VTT 字幕(或副标题)。不幸的是,我没有找到任何来自微软的关于这个主题的官方文档。这个 Stack Overflow question 是我找到的唯一有用的信息。根据问题的答案;我将标题上传到与视频输出资产相同的 blob 容器中,并通过编辑视频的流媒体 URL(替换最后一部分)来引用它。
因此,如果视频的流媒体 URL 是这样的:
那么字幕的流媒体 URL 将是:
我正在尝试使用此 tool 中的高级选项显示视频和字幕。标题出现在选项中,但实际字词不会出现在屏幕上。
我有两个问题 -
-
将字幕作为 blob 容器的一部分上传是否是上传字幕的正确方法?或者有没有更好的方法(也许通过 SDK)我还没有遇到过?
-
如果 1. 的答案是肯定的,那么字幕的流媒体 URL 应该如何生成?上面的例子是否正确?
解决方法
如果要将 VTT 文件存储在与资产相同的存储容器中,并使其可供下载,则需要将预定义策略更改为
StreamingPolicyName = PredefinedStreamingPolicy.DownloadAndClearStreaming
此方法适用于清晰内容,但不适用于受保护 (DRM) 内容。对于受保护的内容,您应该为字幕文件使用单独的容器(或资产)。