2012-06-12 72 views
4

我一直在关注苹果的HTTP Live Streaming指南,并让它在我的应用程序中很好地工作,但我想在视频中嵌入字幕。建议Netflix做到了。HTTP编码视频直播字幕

我的源视频使用QuickTime Pro通过.srt文件嵌入字幕,在QuickTime和我的iOS应用中播放视频时可以看到字幕。一旦我使用mediafilesegmenter(按照HLS的要求)将视频分割为更小的.ts文件,字幕消失。我正在使用MPMoviePlayerController

是否有特殊的方式来编码源视频或使用mediafilesegmenter字幕工作?

回答

4

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

不幸的是,许多HLS玩家会忽略字幕,因为HLS规范没有提及如何处理字幕轨道。在您自己的应用程序中,您可以通过查找已包含EIA-608/EIA-708文本的ts文件并对其进行分段来对其进行测试。坦率地说,我认为在TS中嵌入字幕是一个死路,你会发现编写由TimedMetadata触发的你自己的字幕显示更容易。

=== UPDATE ===

由于HLS草案版本9(2012年9月22日),WebVTT插入字幕中HLS支持。我不知道有什么工具可以与他们一起准备流。

+0

谢谢你的回答,这几乎是我得出的结论。我现在主要使用TimedMetadata。我很乐意看到苹果公司为HLS添加了对字幕的适当支持,但现在我认为这是不可能的。 –

+1

您可以使用大约50美元的Apple Compressor在HLS流中添加隐藏式字幕。 http://www.youtube.com/watch?v=-r59sSiDBKU但是,webvtt可能是一个更好的,有一个开源的JavaScript项目来编辑他们http://scottbw.wordpress.com/2011/06/28/created-subtitles-and-audio-descriptions-with-html5-video /和苹果已经为他们提供了mediasubtitlesegmenter来将.vtt文件拆分成更小的.vtt文件以用于HLS – jbat100

0

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

但是,有像http://captionatorjs.com/这样的polyfills允许在iOS上的视频中使用字幕。现在,我知道captionator适用于非HLS视频,但不知道它是否适用于HLS ...您需要进行研究/测试。


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

+0

这是一个本机应用程序 - 我已经打了TimedMetadata但希望HTTP实时流式传输支持字幕。我不明白为什么不可能将字幕拆分并附加到各个媒体分段。 –

0

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

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