Файл .m3u8
не является видеоклипом ; это файл типа манифеста, который используется для потоковой передачи видео HTTP. Он указывает URL-адрес видеофрагментов в кодировке MPEG2-TS
длина которых обычно составляет около 10 минут.
- Сервер отправляет этот
.m3u8
клиенту
- Затем клиент извлекает URL-адрес к сегменту видео
.ts
а затем отображает сегмент видео.
При нормальных условиях прямой потоковой передачи новый .m3u8
отправляется с сервера клиенту каждые 10 минут, чтобы он знал URL следующего 10-минутного сегмента видео. Когда сегментов больше нет или событие потоковой передачи прекратилось, сервер отправляет .m3u8
.m3u8 с директивой #EXT-X-ENDLIST
, которая сообщает клиенту, что дальнейших сегментов не будет, как описано выше в szatmary.
Таким образом, ваше видео "зависает", как вы описали, так как больше нет доступных сегментов.
Исправить:
Исправления не требуется, поскольку сервер не предоставил больше сегментов.
Ресурсы:
Лучший инструмент для обнаружения этого - это редактор вроде vi (vim), который позволит вам увидеть директивы в файле .m3u8
чтобы вы могли проверить директиву #EXT-X-ENDLIST
. Или просто используйте cat
или tail
чтобы показать содержимое файла .m3u8
.
Ссылка на черновик IETF HTTP Live Streaming, предоставленная szatmary, очень информативна и объясняет все директивы, которые используются в файле .m3u8
.
Поскольку Apple разработала и определила этот протокол, это лучший источник информации:https://developer.apple.com/streaming/
Дополнительные ресурсы можно найти здесь:http://en.wikipedia.org/wiki/HTTP_Live_Streaming