Поиск в файле M3U8 приводит к задержке 20 секунд или больше

383
emb-pro

У меня есть список файлов TS. Для каждого файла TS у меня есть файл m3u8. Но для некоторых файлов TS у меня нет файлов m3u8. Мой файл m3u8 находится в следующем формате (показывает уже существующий файл).

Этот файл уже в моей системе, я не знаю, как он был создан (может быть с помощью команды или вручную)

#EXTM3U #EXT-X-VERSION:4 #EXT-X-TARGETDURATION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:3.000000, #EXT-X-BYTERANGE:332196@0 video.ts #EXTINF:3.000000, #EXT-X-BYTERANGE:352124@332196 video.ts #EXTINF:3.000000, #EXT-X-BYTERANGE:92684@684320 video.ts #EXTINF:3.000000, #EXT-X-BYTERANGE:195708@777004 video.ts #EXTINF:3.000000, #EXT-X-BYTERANGE:178600@972712 video.ts #EXTINF:3.000000, #EXT-X-BYTERANGE:204356@1151312 video.ts ...... ...... ...... ...... #EXT-X-ENDLIST 

Я создал файл m3u8 для отсутствующих файлов в соответствии с ответом slhck . После создания файла он воспроизводился хорошо, но когда я перемещаюсь, видео останавливается на какое-то время, это занимает 20 секундную задержку. Посмотрите на файл ниже, который я создал вручную.

#EXTM3U #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-ALLOW-CACHE:YES #EXT-X-TARGETDURATION:61 #EXTINF:3600.080000, mysecondvideo.ts #EXT-X-ENDLIST 

Но когда я воспроизводил вышеуказанный файл через браузер, он вообще не воспроизводится. Я читал статьи о m3u8. Но это не сработало для меня.

Пожалуйста, помогите мне с созданием файла m3u8, чтобы я мог играть в браузере без каких-либо задержек.

PS: я не хочу перекодировать мое видео. Я не транслирую видео в прямом эфире

Заранее спасибо.

0
Целевая длительность должна быть больше, чем самый большой размер сегмента. Это задокументировано в спецификации. szatmary 5 лет назад 0
«файл, который я создал ниже» - это файл, который вы создали вручную, или ffmpeg создал его для вас? Пожалуйста, покажите точную команду, которую вы использовали для создания файла, а также покажите весь вывод командной строки из ffmpeg. И я все еще в замешательстве: в вашем первом примере у вас работает M3U8, и он ссылается на `video.ts`, но вы говорите, что файл отсутствует? Или `video.ts` просто пример? Пожалуйста, используйте настоящие имена файлов, чтобы было понятно, к какому из них вы обращаетесь. slhck 5 лет назад 0
Название было изменено, чтобы задать совершенно другой вопрос. szatmary 5 лет назад 0
@slhck Первый файл m3u8 был создан ffmpeg. Второй файл был написан мной, как вы предложили. emb-pro 5 лет назад 0
@slhck У меня нет журналов, файлов, чтобы показать, как был создан файл m3u8. Технически я не знаю точную команду, используемую для реализации файла m3u8. emb-pro 5 лет назад 0
@szatmary Я изменил заголовок, потому что это проблема, о которой упоминал ОП в другой ветке комментариев, поэтому я сказал им создать новый вопрос. Также проблема четко обозначена в теле этого поста. slhck 5 лет назад 0
@ emb-pro Когда вы говорите «написано мной», вы писали это вручную или использовали ffmpeg для его генерации? Если вы написали это вручную, вы, конечно, должны использовать правильные значения продолжительности. Если вы использовали ffmpeg, в командной строке есть журнал, который ffmpeg печатает. Но опять же: имена файлов в вашем посте сбивают с толку, и не совсем понятно, чем вы занимались. Пожалуйста, опишите все в точности так, как это выглядит на вашем компьютере, когда вы его вводите. Мы не сидим рядом с вами, поэтому сложно угадать, что происходит. slhck 5 лет назад 0
@slhck Я могу понять, что первый файл m3u8 был создан ffmpeg (у меня нет команды, которая использовалась для его создания). Второй файл m3u8 был написан мной вручную (как вы сказали в предыдущем вопросе). Я использую правильные значения продолжительности. причина, по которой я использовал 3600.080000, - точная продолжительность в минутах. и Video.ts был файлом, используемым первым файлом m3u8. Это хорошо. Когда я пытаюсь воспроизвести файл m3u8 в моем браузере, он играет хорошо. Но для второго файла m3u8 я использовал video.ts внутри. На самом деле это другой. Я редактировал вопрос для вас. Посмотри на это. emb-pro 5 лет назад 0
Возвращаясь к тому, что сказал @szatmary: `TARGETDURATION` и продолжительность указанного вами файла отличаются, поэтому вы не используете правильные значения. Как я уже сказал в своем ответе, вы должны вручную указать продолжительность. Но вы должны сделать это в обоих местах. В основном используйте `# EXT-X-TARGETDURATION: 3600` и` #EXTINF: 3600`. slhck 5 лет назад 0

0 ответов на вопрос

Похожие вопросы