dturing / node-gstreamer-superficial

Superficial gstreamer binding
MIT License
127 stars 45 forks source link

pipeline working in node.js or console, but fails in nw.js #41

Closed infantilo closed 3 years ago

infantilo commented 3 years ago

I'm struggling with the following, simple pipeline:

const pipeline = new gstreamer.Pipeline('filesrc location=/home/rpi/Downloads/Off-Lazarov.mp4 ! decodebin ! autovideosink');

uring this line in node.js works fine. But The same line used within nw.js ( process.versions['node-webkit'] == 0.41.3 ) returns:

[4758:4758:0814/115547.642413:ERROR:CONSOLE(5192)] "Cannot find context with specified id", source: devtools://devtools/bundled/shell.js (5192) [4758:4758:0814/115547.642636:ERROR:CONSOLE(0)] "TypeError: Cannot read property 'exceptionDetails' of null", source: (0)

{type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_NULL", new-state: "GST_STATE_READY", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_NULL", new-state: "GST_STATE_READY", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_NULL", new-state: "GST_STATE_READY", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_NULL", new-state: "GST_STATE_READY", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_NULL", new-state: "GST_STATE_READY", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_NULL", new-state: "GST_STATE_READY", pending-state: "GST_STATE_PLAYING"} index.html:19 {type: "GST_STREAM_STATUS_TYPE_CREATE", name: "GstMessageStreamStatus", owner: "(GstTypeFindElement) typefind", object: "(GstTask) typefind:sink"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_READY", new-state: "GST_STATE_PAUSED", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_READY", new-state: "GST_STATE_PAUSED", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "GST_STREAM_STATUS_TYPE_ENTER", name: "GstMessageStreamStatus", owner: "(GstTypeFindElement) typefind", object: "(GstTask) typefind:sink"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_NULL", new-state: "GST_STATE_READY", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "GST_STREAM_STATUS_TYPE_CREATE", name: "GstMessageStreamStatus", owner: "(GstQTDemux) qtdemux2", object: "(GstTask) qtdemux2:sink"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_READY", new-state: "GST_STATE_PAUSED", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "GST_STREAM_STATUS_TYPE_ENTER", name: "GstMessageStreamStatus", owner: "(GstQTDemux) qtdemux2", object: "(GstTask) qtdemux2:sink"} index.html:19 {type: "GST_STREAM_STATUS_TYPE_CREATE", name: "GstMessageStreamStatus", owner: "(GstMultiQueue) multiqueue2", object: "(GstTask) multiqueue2:src_0"} index.html:19 {type: "GST_STREAM_STATUS_TYPE_ENTER", name: "GstMessageStreamStatus", owner: "(GstMultiQueue) multiqueue2", object: "(GstTask) multiqueue2:src_0"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_NULL", new-state: "GST_STATE_READY", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_READY", new-state: "GST_STATE_PAUSED", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "decoder", name: "H.264 (High Profile)-Decoder", detail: "video/x-h264, level=(string)4.1, profile=(string)h… bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8"} index.html:19 {type: "GST_STREAM_STATUS_TYPE_CREATE", name: "GstMessageStreamStatus", owner: "(GstMultiQueue) multiqueue2", object: "(GstTask) multiqueue2:src_1"} index.html:19 {type: "GST_STREAM_STATUS_TYPE_ENTER", name: "GstMessageStreamStatus", owner: "(GstMultiQueue) multiqueue2", object: "(GstTask) multiqueue2:src_1"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_NULL", new-state: "GST_STATE_READY", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_READY", new-state: "GST_STATE_PAUSED", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_NULL", new-state: "GST_STATE_READY", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_READY", new-state: "GST_STATE_PAUSED", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "duration-changed", name: "GstMessageDurationChanged"} index.html:19 {type: "warning", name: "GstMessageWarning", gerror: undefined, debug: "./grammar.y(506): gst_parse_no_more_pads (): /GstP…some pad of GstAutoVideoSink named autovideosink2"} index.html:19 {type: "state-changed", name: "GstMessageStateChanged", old-state: "GST_STATE_READY", new-state: "GST_STATE_PAUSED", pending-state: "GST_STATE_VOID_PENDING"} index.html:19 {type: "error", name: "/GstPipeline:pipeline2/GstDecodeBin:decodebin2/GstQTDemux:qtdemux2", gerror: undefined, debug: "qtdemux.c(6605): gst_qtdemux_loop (): /GstPipeline…demux2:↵streaming stopped, reason not-linked (-1)", details: "details, flow-return=(int)-1;", …}

dturing commented 3 years ago

@infantilo is this still an open issue for you, or did you find the reason?

I suspect an environment issue like gstreamer not finding some plugin, plus the exception going wrong; but I don't really have the time to did into nw.js issues.

infantilo commented 3 years ago

It seems, as if an outdated nw.js version. Using the version nw 0.48.1 and above solved the problem. So this was no superficial issue! Therefore i'm closing this issue.