4

我一直在关注 Apple 的HTTP Live Streaming指南,并让它在我的应用程序中运行良好,但我想在视频中嵌入字幕。Quora 上的这个帖子表明 Netflix 已经做到了。

我的源视频使用 QuickTime Pro 通过 .srt 文件嵌入了字幕,在 QuickTime 和我的 iOS 应用程序中播放视频时可以看到字幕。一旦我使用 mediafilesegmenter(根据 HLS 的要求)将视频拆分为较小的 .ts 文件,字幕就会消失。我正在使用MPMoviePlayerController

是否有一种特殊的方法来编码源视频或使用 mediafilesegmenter 进行字幕工作?

4

3 回答 3

5

ts 流中可以有字幕(例如 EIA-608 或 EIA-708)。我不知道有什么好的免费工具可以将这样的字幕插入到 ts 流中,但Manzanita可能会卖给你一些东西(以荒谬的价格)。

不幸的是,许多 HLS 播放器会忽略字幕,因为 HLS 规范没有提到应该如何处理字幕轨道。在您自己的应用程序中,您可以通过找到一个已经包含 EIA-608/EIA-708 文本的 ts 文件并对其进行分段来测试它。

坦率地说,我认为在 TS 中嵌入字幕是一条死路,您会发现编写自己的由 TimedMetadata 触发的字幕显示器会更容易。

=== 更新 ===

自 HLS 草案第 9 版(2012 年 9 月 22 日)起,HLS 支持 WebVTT 字幕。我不知道有什么工具可以用它们来准备流。

于 2012-06-13T09:48:14.840 回答
0

我认为对于浏览器中的 HTTP Live Streaming,不支持字幕(我可能是错的)。

然而,像http://captionatorjs.com/这样的 polyfill 允许在 iOS 上的视频中添加字幕。现在,我知道字幕适用于非 HLS 视频,但不确定它是否适用于 HLS……您需要研究/测试。


PS,如果它是您拥有的本机应用程序,那么您正在寻找定时元数据http://developer.apple.com/library/ios/#documentation/mediaplayer/reference/MPTimedMetadata_Class/Reference/Reference.html来支持字幕等内容。

于 2012-06-12T18:56:32.323 回答
0

如果它对某人有帮助,我有一个应用程序可以从 Vimeo Pro 帐户流式传输 HLS 内容。Vimeo 允许您添加在 iOS 和 tvOS 设备上完美处理的 WebVTT 字幕。

为了生成 .vtt 文件,我使用了 YouTube,如下所示:https ://www.youtube.com/watch?v=vlj_Lq31BKw

于 2018-02-19T17:16:23.837 回答