mediaSource API not working on Chrome but works smoothly on Firefox -


i trying stream webm format video being generated using gstreamer , individual frame being sent on websockets. typical byte arrangement of webm file (you may familiar this).

ebml (head size: 12 bytes, data: 16 bytes, pos: 0, '0x0')     doctype (head size: 3 bytes, data: 5 bytes, pos: 12l, '0xcl') : 'webm\x00'     doctypeversion (head size: 3 bytes, data: 1 bytes, pos: 20l, '0x14l') : 2     doctypereadversion (head size: 3 bytes, data: 1 bytes, pos: 24l, '0x18l') : 2 ... ... segmentinfo (head size: 12 bytes, data: 91 bytes, pos: 192l, '0xc0l')     timecodescale (head size: 4 bytes, data: 3 bytes, pos: 204l, '0xccl') : 1000000     duration (head size: 3 bytes, data: 8 bytes, pos: 211l, '0xd3l') : 0.0     muxingapp (head size: 3 bytes, data: 31 bytes, pos: 222l, '0xdel') : 'gstreamer plugin version 1.2.4\x00'     writingapp (head size: 3 bytes, data: 25 bytes, pos: 256l, '0x100l') : 'gstreamer matroska muxer\x00'     dateutc (head size: 3 bytes, data: 8 bytes, pos: 284l, '0x11cl') : 447902803000000000l video (head size: 9 bytes, data: 8 bytes, pos: 295l, '0x127l')     pixel width (head size: 2 bytes, data: 2 bytes, pos: 351l, '0x15fl') : 640     pixel height (head size: 2 bytes, data: 2 bytes, pos: 355l, '0x163l') : 480     codec id (head size: 2 bytes, data: 6 bytes, pos: 359l, '0x167l') : 'v_vp8\x00' cluster (head size: 12 bytes, data: 72057594037927935l bytes, pos: 367l, '0x16fl')     timecode (head size: 2 bytes, data: 2 bytes, pos: 379l, '0x17bl') : 1514     simpleblock (head size: 4 bytes, data: 44618 bytes, pos: 383l, '0x17fl') : 'binary'       track number : 1, keyframe : true, invisible : 'no', discardable : 'no'       lace : 'no lacing', time code : 0, time code(absolute) : 1514     simpleblock (head size: 3 bytes, data: 793 bytes, pos: 45005l, '0xafcdl') : 'binary'       track number : 1, keyframe : false, invisible : 'no', discardable : 'no'       lace : 'no lacing', time code : 27, time code(absolute) : 1541 <<conitnued....>> 

what see, absolute time code , relative time code being written correctly when redirect gstreamer output filesink. same gstreamer pipeline used extract byte sequences (samples). these samples transmitted on websocket , received on client side using mediasource api.

my implementation of client javascript described here. when run client in firefox, video runs smoothly without glitches. on chrome, video freezes after time or @ beginning.

i tried modifying sourcebuffer.mode = "sequence" or "segments", none of options work on chrome, whereas video feed on firefox totally unaffected value of "sourcebuffer.mode". description of these modes here. (i assuming mediasource api works same way on ie , firefox, no documentation available on mozilla website).

also, mediasource.duration infinity/nan in chrome , firefox both.

no matter way try, the live feed on chrome not @ working, whereas firefox displays smooth video. suggestions, why happening?

updates: upgraded chrome version 41 gives more details on chrome://media-internals. message shown is:

render_id: 23 player_id: 1 pipeline_state: kstopped event: webmediaplayer_destroyed url: blob:http%3a//localhost%3a8080/172f68c8-9ff3-4983-9dcb-    396b3f843752 found_video_stream: true video_codec_name: vp8 duration: unknown video_dds: false video_decoder: ffmpegvideodecoder error: append: stream parsing failed. data size=2283         append_window_start=0 append_window_end=inf pipeline_error: pipeline: decode error   timestamp   property    value 00:00:00 00 pipeline_state  kcreated 00:00:00 00 event   pipeline_created 00:00:00 00 event   webmediaplayer_created 00:00:00 00 url blob:http%3a//localhost%3a8080/172f68c8-9ff3-4983-9dcb-396b3f843752 00:00:00 00 pipeline_state  kinitdemuxer 00:00:01 687    found_video_stream  true 00:00:01 692    video_codec_name    vp8 00:00:01 692    duration    unknown 00:00:01 692    pipeline_state  kinitrenderer 00:00:01 694    video_dds   false 00:00:01 694    video_decoder   ffmpegvideodecoder 00:00:01 695    pipeline_state  kplaying 00:00:10 989    event   play 00:00:11 276    error   got block timecode before previous block. 00:00:11 276    error   append: stream parsing failed. data size=2283 append_window_start=0 append_window_end=inf 00:00:11 276    pipeline_error  pipeline: decode error 00:00:11 276    pipeline_state  kstopping 00:00:11 277    pipeline_state  kstopped 00:01:14 239    event   webmediaplayer_destroyed 

how fix or calculate "append_window_end"???


Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

gradle error "Cannot convert the provided notation to a File or URI" -

python - NameError: name 'subprocess' is not defined -