2012-06-12 2 views
4

Я следил за руководством Apple для HTTP Live Streaming и хорошо работал в моем приложении, но хотел бы включить субтитры в видео. This thread on Quora предполагает, что Netflix это сделал.Кодирование видео для потоковой передачи HTTP с субтитрами

В моих исходных видеороликах есть субтитры, встроенные через .srt-файл с использованием QuickTime Pro, а субтитры можно увидеть при воспроизведении видео в QuickTime и в моем приложении iOS. Как только я разбил видео на меньшие файлы .ts с помощью mediafilesegmenter (как требуется для HLS), субтитры исчезают. Я использую MPMoviePlayerController.

Есть ли специальный способ кодирования исходного видео или использовать медиафайлы для субтитров для работы?

ответ

4

Возможно иметь титры в потоке ts (например, EIA-608 или EIA-708). Я не знаю ни одного хорошего бесплатного инструмента для вставки таких субтитров в поток ts, но, вероятно, Manzanita что-то продаст вам (за абсурдную цену).

К сожалению, многие игроки HLS проигнорируют субтитры, поскольку в спецификации HLS нет упоминания о том, как обрабатывать треки субтитров. В своем собственном приложении вы можете протестировать его, найдя ts-файл, который уже содержит текст EIA-608/EIA-708 и сегментирует его.

Чтобы быть откровенным, я думаю, что встраивание субтитров в TS является тупиком, и вам будет легче написать свой собственный экран субтитров, вызванный TimedMetadata.

=== UPDATE ===

Начиная с версии 9 (22 сентября 2012) проекта HLS, WebVTT субтитры поддерживаются в ЗОЖ. Я не знаю ни одного инструмента для подготовки потоков с ними.

+0

Спасибо за ваш ответ, это в значительной степени вывод, который я достиг. В основном я работаю с TimedMetadata. Я бы хотел, чтобы Apple добавила правильную поддержку для субтитров в HLS, но пока я думаю, что можно с уверенностью предположить, что это невозможно. –

+1

Вы можете добавить закрытую подпись в потоках HLS с помощью Apple Compressor, которая составляет около 50 долларов США. http://www.youtube.com/watch?v=-r59sSiDBKU, но да, webvtt, вероятно, лучше, есть JavaScript-проект с открытым исходным кодом для их редактирования http://scottbw.wordpress.com/2011/06/28/create-subtitles-and-audio-description-with-html5-video/и apple предоставили им mediasubtitlesegmenter, чтобы разбить файлы .vtt на более мелкие .vtt-файлы для HLS – jbat100

0

Я думаю, что для HTTP Live Streaming в браузере нет поддержки субтитров (я мог ошибаться).

Однако существуют полиполки, такие как http://captionatorjs.com/, которые позволяют субтитры в видео на iOS. Теперь я знаю, что captionator работает для видео, отличного от HLS, однако не уверен, что он работает с HLS ... вам нужно будет исследовать/протестировать.


P.S. если это собственное приложение, то вы ищете временные метаданные http://developer.apple.com/library/ios/#documentation/mediaplayer/reference/MPTimedMetadata_Class/Reference/Reference.html для поддержки таких вещей, как титры.

+0

Это родное приложение - я играл с TimedMetadata, но надеялся, что HTTP Live Streaming поддерживает субтитры. Я не понимаю, почему невозможно будет разбить субтитры и прикрепить их к отдельным сегментам мультимедиа. –

0

Если это кому-то помогает, у меня есть приложение, которое передает содержимое HLS из учетной записи Vimeo Pro. Vimeo позволяет добавлять субтитры WebVTT, которые отлично обрабатываются на устройствах iOS и tvOS.

Для создания файла .vtt я использовал YouTube, как показано здесь: https://www.youtube.com/watch?v=vlj_Lq31BKw

Смежные вопросы