IOS - AVPlayer с использованием закрытых титров
Я работаю с AVPlayer при использовании iOS для свойства "closedCaptionDisplayEnabled"
показать субтитры или субтитры в фильме (hls или mp4), но заголовок ничего не показывает.
Я не знаю почему?
Есть ли у вас решение отображать титры (субтитры) в фильме (hls, mp4)?
И я вижу несколько примеров про приложение, youtube, netflix, tvguide и что-то, что используется для закрытых титров.
Возможно, все приложение на iphone, ipad из netflix, youtube, используя один файл и вставляя субтитры внутри видео, я думаю,
Но я хочу использовать два файла (один файл hls или mp4, один файл srt или WebVTT)
image1, image2
Спасибо, что прочитали эту статью!!!!
Ответы
Ответ 1
iOS AVPlayer поддерживает титры одним из двух способов: либо кодировать заголовки стандартом CEA-608 (модифицированную версию устаревшего кодирования CEA-708/ATSC) в сегментированные видеофайлы MPEG2-TS, либо путем предоставления титры в сегментированном файле WebVTT, который указан в главном плейлисте m38u для видео HLS. "Мягкие" субтитры (которые могут быть включены и выключены) поддерживаются стандартом WebVTT аналогично титрам (они оба классифицируются как временные метаданные); если вы предпочитаете "жесткие" субтитры (где они "сжигаются" в видео), вы должны предоставить данные субтитров вашему видеокодеру во время процесса перекодирования.
Для получения дополнительной информации см. следующие ссылки:
https://developer.apple.com/library/ios/documentation/networkinginternet/conceptual/streamingmediaguide/UsingHTTPLiveStreaming/UsingHTTPLiveStreaming.html
http://blog.zencoder.com/2012/07/13/closed-captioning-for-web-mobile-and-tv/
Ответ 2
Вы пытаетесь использовать srt файлы в качестве субтитров? Поскольку встроенный закрытый субтитр AVPlayer в iOS должен быть закодирован как часть потока (проверьте документацию AVPlayer). Найдите программное обеспечение для редактирования видео, которое может вставить srt в видео (обратите внимание: это не запеченные субтитры, которые являются частью видео, вы можете отключить их).
Теперь, если вы не можете этого сделать, единственное другое решение - реализовать собственные субтитры, проанализировав файл srt и отображая UILabel поверх видеоизображения.
Ответ 3
Очень быстрый и простой способ сделать это - загрузить его в веб-представление.
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let html = """
<video playsinline controls width="100%" autoplay src="https://example.com/xyz.mp4">
<track default src="https://example.com/abc.vtt">
</video>
"""
webView.loadHTMLString(html, baseURL: nil)
}