使用字幕对HTTP Live Streaming编码视频

4
我一直在遵循苹果的HTTP Live Streaming指南,在我的应用程序中已经成功运行,但我想在视频中嵌入字幕。Quora上的这个帖子表明Netflix已经做到了。
我的源视频通过QuickTime Pro使用.srt文件嵌入字幕,在QuickTime和我的iOS应用程序中播放视频时可以看到字幕。一旦我使用mediafilesegmenter(作为HLS所需)将视频分成较小的.ts文件,字幕就消失了。我正在使用MPMoviePlayerController
是否有特殊的编码源视频或使用mediafilesegmenter使字幕工作的方法?
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字幕。我不知道有哪些准备流的工具。

谢谢您的回答,这基本上是我得出的结论。现在我已经使用TimedMetadata大部分工作完成了。我希望看到苹果为HLS添加适当的字幕支持,但现在我认为可以安全地假设这是不可能的。 - David Snabel-Caunt
1
您可以使用价格约为50美元的Apple Compressor在HLS流中添加闭路字幕。http://www.youtube.com/watch?v=-r59sSiDBKU 但是,webvtt可能更好,有一个开源的JavaScript项目可用于编辑它们http://scottbw.wordpress.com/2011/06/28/creating-subtitles-and-audio-descriptions-with-html5-video/,而且苹果还提供了mediasubtitlesegmenter将.vtt文件拆分成较小的.vtt文件以用于HLS。 - jbat100

0

我认为在浏览器中进行HTTP Live Streaming时,不支持字幕(我可能错了)。

然而,有一些polyfills,比如http://captionatorjs.com/,可以在iOS上的视频中添加字幕。现在,我知道captionator适用于非HLS视频,但不确定它是否适用于HLS...你需要进行研究和测试。


顺便说一下,如果您有一个本地应用程序,那么您正在寻找定时元数据 http://developer.apple.com/library/ios/#documentation/mediaplayer/reference/MPTimedMetadata_Class/Reference/Reference.html 来支持字幕等内容。


这是一个原生应用 - 我已经使用TimedMetadata玩过了,但希望HTTP Live Streaming支持字幕。我看不出为什么不能将字幕拆分并附加到各个媒体段上。 - David Snabel-Caunt

0
如果有人需要,我有一个应用程序可以从Vimeo Pro帐户流式传输HLS内容。 Vimeo允许您添加WebVTT字幕,在iOS和tvOS设备上处理得非常好。
要生成.vtt文件,我使用了YouTube,如此处所示:https://www.youtube.com/watch?v=vlj_Lq31BKw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接