Фрагментированный файл mp4 не воспроизводится MSE - PullRequest
0 голосов
/ 09 марта 2020

Я создал фрагментированный файл 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?

...