iOS - AVPlayer, использующий закрытые заголовки

Я работаю с AVPlayer на iOS, использую свойство "closedCaptionDisplayEnabled", чтобы показывать заголовки или субтитры к фильму (hls или mp4), но заголовок ничего не показывает. Не знаю почему?

У вас есть какое-либо решение для показа титров (субтитров) в фильме (hls,mp4)?

И я вижу несколько примеров про app, youtube, netflix, tvguide и что-то, что используется для скрытой подписи.

Может быть, все приложения на Iphone, Ipad от Netflix, YouTube, используя один файл и вставьте субтитры в видео, я думаю,

Но я хочу использовать два файла (один файл hls или mp4, один файл srt или WebVTT)

изображение1, изображение2

Спасибо, что прочитали эту статью!!!!

2 ответа

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/

Вы пытаетесь использовать файлы SRT в качестве субтитров? Поскольку встроенные субтитры AVPlayer в iOS должны быть закодированы как часть потока (см. Документацию AVPlayer). Найдите программное обеспечение для редактирования видео, которое может вставить srt в видео (обратите внимание: это не встроенные субтитры, которые являются частью видео; вы можете включить или выключить их).

Теперь, если вы не можете сделать это, единственное другое решение - реализовать ваши собственные субтитры, проанализировав файл srt и отобразив UILabel поверх представления видео.

Очень быстрый и простой способ сделать это - загрузить его в webView.

@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)
}
Другие вопросы по тегам