Я взял видео mp4, закодировал его для HTTP Live Streaming (HLS) с помощью ffmpeg, в результате чего появилась серия файлов myvideo.ts и плейлист myvideo.m3u8 - и я пытаюсь воспроизвести его с помощью тега HTML <video>
в Safari, с собственными возможностями HLS этого браузера:Как я могу создать видеоролик HLS (m3u8) в Safari?
<video id="myvideo" src="myvideo.m3u8" loop="loop"></video>
Он играет один раз. Но, несмотря на атрибут «loop» в теге видео, он не зацикливается. Он остается замороженным на последнем кадре видео.
Если я пытаюсь определить конец видео с помощью прослушивателя событий, как описано здесь: Detect when an HTML5 video finishes ... это событие кажется, никогда не срабатывает.
Свойство «приостановлено» в javascript (document.getElementById('myvideo').paused
) оценивается как ложное, даже после того, как видео сыграло один раз и остановилось.
Как я могу получить видеоролик в Safari?
Сафари, вероятно, ожидают, что больше блоков будет написано на стороне сервера. Я бы рекомендовал не использовать собственные возможности HLS, поскольку он недоступен в большинстве браузеров. Рассмотрим один из клиентских обработчиков JavaScript для HLS, использующих API расширения источников мультимедиа. Они могут лучше справляться с вашими обстоятельствами HLS. – Brad
Во всех других браузерах я использую библиотеку «hls.js» Dailymotion (https://github.com/dailymotion/hls.js), которая работает очень хорошо во всем, кроме Safari. В Safari воспроизведение сильно заикается, поэтому я пытался воспроизвести собственное воспроизведение в этом браузере. – sherlock42