Файл .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