Fragmented MP4 plays fine with MSE in Firefox but not in Chrome.

372 views
Skip to first unread message

Michael IV

unread,
Nov 15, 2017, 1:39:21 AM11/15/17
to Chromium-discuss
Hi Google!

I am trying to play a fragmented MP4 via websocket in Chrome.(v62)
Here the full question including the source code I published on StackOverflow.



Can anyone tell me what can be possible wrong here?

What happens is that after the 2 first packets have been feteched the 'sourceended' and 'sourceclose' callbacks are
triggered and that's all. Nothing shows up.
The stream is perfectly fine. tripple-checked with ffprobe and other tools.
Also,if I write the stream into file and then play it regularly in a a video tag src ,it plays fine.

Now updated to V62,same thing.


More info:

Here is what I got from chrome's media log:
--------------  start --------------------------------------
      "properties": {
      "render_id": 121,
      "player_id": 95,
      "origin_url": "http://127.0.0.1:5500/",
      "frame_url": "http://127.0.0.1:5500/index_fmp41.html",
      "frame_title": "MSE Demo",
      "url": "blob:http://127.0.0.1:5500/e6855ad6-7967-4c74-b37f-980ffb63da4b",
      "pipeline_state": "kStopped",
      "error": "Append: stream parsing failed. Data size=689 append_window_start=0 append_window_end=inf",
      "pipeline_error": "CHUNK_DEMUXER_ERROR_APPEND_FAILED",
      "event": "WEBMEDIAPLAYER_DESTROYED"
    },
    "events": [
      {
        "time": 0,
        "key": "origin_url",
        "value": "http://127.0.0.1:5500/"
      },
      {
        "time": 0.009000062942504883,
        "key": "frame_url",
        "value": "http://127.0.0.1:5500/index_fmp41.html"
      },
      {
        "time": 0.02500009536743164,
        "key": "frame_title",
        "value": "MSE Demo"
      },
      {
        "time": 0.11599993705749512,
        "key": "url",
        "value": "blob:http://127.0.0.1:5500/e6855ad6-7967-4c74-b37f-980ffb63da4b"
      },
      {
        "time": 0.16000008583068848,
        "key": "pipeline_state",
        "value": "kStarting"
      },
      {
        "time": 360.97500014305115,
        "key": "error",
        "value": "Append: stream parsing failed. Data size=689 append_window_start=0 append_window_end=inf"
      },
      {
        "time": 361.4920001029968,
        "key": "pipeline_error",
        "value": "CHUNK_DEMUXER_ERROR_APPEND_FAILED"
      },
      {
        "time": 361.595999956131,
        "key": "pipeline_state",
        "value": "kStopping"
      },
      {
        "time": 361.6089999675751,
        "key": "pipeline_state",
        "value": "kStopped"
      },
      {
        "time": 130679.52699995041,
        "key": "event",
        "value": "WEBMEDIAPLAYER_DESTROYED"
      }
    ]
...
 ......
---------------------  end -----------------------------------------

Now the chunk which is marked with "Append:stream parsing failed" and its size is 689 bytes is
the second fragment.The first fragment is 24 bytes and this is the initial moov fragment.
On the FFMPEG side I tried different combinations of all these flags:

faststart
empty_moov
frag_keyframe
omit_tfhd_offset
default_base_moof

But it didn't help


I also tried to change encoder profile from main to constrained and back,checked the SPSPPS header bits -looks ok.



Thanks!
Reply all
Reply to author
Forward
0 new messages