Я создал фрагментированный файл mp4 с помощью ffmpeg (из h264) и удалил первые 6 пар moof и mdat.
Так что теперь он по-прежнему имеет правильный порядок блоков: ftyp, moov, moof, mdat , moof, mdat, ..., но первый пакет moof имеет порядковый номер 7.
VL C может нормально воспроизводиться, также могут воспроизводиться фильмы и ТВ, но первые несколько секунд черный.
Если я перетаскиваю файл в браузер, он также может нормально его воспроизводить.
Однако он не отображается вообще в браузере (Chrome), если я его кормлю через MSE.
Сообщения об ошибках не печатаются, и в журнале внутренних медиа-файлов видно, что видеоплеер начинает воспроизведение в первую секунду и приостанавливает его только в 18-ю секунду:
Timestamp Property Value
00:00:00.000 origin_url "https://localhost:8443/"
00:00:00.000 kFrameUrl "https://localhost:8443/websocket/videodemo.html"
00:00:00.000 kFrameTitle "WebSocket and MSE demo"
00:00:00.000 url "blob:https://localhost:8443/3b4d4b1a-7c08-4136-95fe-dabc14fba95f"
00:00:00.000 info "ChunkDemuxer"
00:00:00.000 pipeline_state "kStarting"
00:00:01.067 kVideoTracks [{"alpha mode":"is_opaque","codec":"h264","coded size":"1600x900","color space":"{primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}","encryption scheme":"Unencrypted","flipped":false,"has_extra_data":false,"natural size":"1600x900","profile":"h264 main","rotation":"0°","visible rect":"0,0 1600x900"}]
00:00:01.067 debug "Video rendering in low delay mode."
00:00:01.070 info "Using D3D11 device for DXVA"
00:00:01.075 kIsVideoDecryptingDemuxerStream false
00:00:01.075 kVideoDecoderName "MojoVideoDecoder"
00:00:01.075 kIsPlatformVideoDecoder true
00:00:01.075 info "Selected MojoVideoDecoder for video decoding, config: codec: h264, profile: h264 main, alpha_mode: is_opaque, coded size: [1600,900], visible rect: [0,0,1600,900], natural size: [1600,900], has extra data: false, encryption scheme: Unencrypted, rotation: 0°, flipped: 0, color space: {primaries:BT709, transfer:BT709, matrix:BT709, range:LIMITED}"
00:00:01.075 pipeline_state "kPlaying"
00:00:01.067 duration "unknown"
00:00:18.926 pipeline_state "kSuspending"
00:00:18.926 pipeline_state "kSuspended"
00:00:18.927 event "SUSPENDED"
Вот справочный файл для справки.
В чем проблема с этим файлом, почему он не отображается в браузере с MSE?