Краткая история: почему HLS не может просто воспроизводить нормальные файлы MP4 один за другим? Зачем нужно сегментировать медиафайлы в сегментах .ts?HLS MP4 Независимые сегменты
Деталь:
Мы сегментирование MP4 файла в мини-сегменты MP4 (не TS), каждый из которых около 30 секунд для тестирования. Он никогда не воспроизводится в любом проигрывателе HLS, просто загружая все файлы сегментов, тогда ничего не происходит.
Пример MP4 сегмент Информация:
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 1.44 MiB
Duration : 32s 950ms
Overall bit rate : 366 Kbps
Writing application : Lavf56.25.101
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings, CABAC : Yes
Format settings, ReFrames : 6 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 32s 950ms
Bit rate : 230 Kbps
Width : 426 pixels
Height : 240 pixels
Display aspect ratio : 16:9
Original display aspect rat : 16:9
Frame rate mode : Constant
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.094
Stream size : 925 KiB (63%)
Writing library : x264 core 142 r2495 6a301b6
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 32s 896ms
Bit rate mode : Constant
Bit rate : 129 Kbps
Channel(s) : 2 channels
Channel(s)_Original : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Compression mode : Lossy
Stream size : 517 KiB (35%)
Мастер M3U8:
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:RESOLUTION=426x240,BANDWIDTH=370000,CODECS="avc1.640015,mp4a.40.2"
240p.m3u8
#EXT-X-STREAM-INF:RESOLUTION=640x360,BANDWIDTH=580000,CODECS="avc1.640015,mp4a.40.2"
360p.m3u8
#EXT-X-STREAM-INF:RESOLUTION=896x504,BANDWIDTH=900000,CODECS="avc1.640015,mp4a.40.2"
480p.m3u8
#EXT-X-STREAM-INF:RESOLUTION=1280x720,BANDWIDTH=1500000,CODECS="avc1.640015,mp4a.40.2"
720p.m3u8
240p.m3u8
#EXTM3U
#EXT-X-VERSION:7
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:34
#EXTINF:33.033033,
240p000.mp4
#EXTINF:33.533534,
240p001.mp4
#EXTINF:24.941608,
240p002.mp4
#EXTINF:28.611945,
240p003.mp4
#EXT-X-ENDLIST
При испытании с HLS.js, дает эту ошибку:
Parsing Error:no demux matching with content found,cannot recover, last media error recovery failed ...
Bitmovin игрок: загружает все сегменты всех вариантов и никогда не играют какой-либо из них. просто остановись.
Протестировано на Chrome & Firefox В Windows, Safari на Mac, Android и iPad Браузеры. Никогда не работает ни на одном из них. Мы делаем что-то неправильно?
Почему вопросы основаны на мнениях. Apple выбрала ts и (фрагментированный mp4 в ios10) для формата. Вам нужно будет спросить их, почему они это выбрали. Никто здесь не может ответить на этот вопрос. Поэтому, я думаю, ваш ответ: «Потому что он не поддерживается» – szatmary
@szatmary это не мнение. Я просто спрашиваю, возможно ли это или нет. Есть ли какой-либо метод или решение, чтобы избежать двойного пространства каждого видеофайла (исходные MP4 + сегменты TS). – Mido
Вопрос, который вы задали, «Почему HLS не может просто воспроизводить обычные файлы MP4 вместе один за другим?«Это мнение основано.Если вы спросили« Can HLS играть в обычные файлы MP4 »? Это не будет основано на мнениях. И ответ будет No. Но, начиная с iOS10, он будет воспроизводить фрагментированные файлы mp4. – szatmary