2012-06-12 55 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