Giter Site home page Giter Site logo

Comments (6)

frankSDeviation avatar frankSDeviation commented on July 28, 2024 1

Thanks again Zingmars! I am currently working on getting two video streams to be sent over UDP. I have been successful in doing this with the following pipline:

st-launch-1.0 pylonsrc camera=0 pixel-format=mono8 width=800 height=600 ! "video/x-raw,format=GRAY8" ! videoflip method=vertical-flip ! videoconvert ! x264enc bitrate=30000 speed-preset=superfast qp-min=30 tune=zerolatency ! rtph264pay ! udpsink host=XXX.XXX.XXX port=XXXX | gst-launch-1.0 pylonsrc camera=1 pixel-format=mono8 width=800 height=600 ! "video/x-raw,format=GRAY8" ! videoflip method=vertical-flip ! videoconvert ! x264enc bitrate=30000 speed-preset=superfast qp-min=30 tune=zerolatency ! rtph264pay ! udpsink host=XXX.XXX.XXX port=XXXX

I will start playing with the videomixer to see if I can send them over UDP in one window. Thanks a ton for the help. I will close this issue now.

from gst-pylonsrc.

zingmars avatar zingmars commented on July 28, 2024

Hi,
The problem with the "Error in the image processing loop" error is that it's very hard to diagnose. As you might've read in #5, it usually means that there was a corrupted frame present, and debugging it is quite hard. Now, when you say "I did exactly as instructed", do you mean you replaced the code block as shown in here #5 (comment)?

For debugging, first I would recommend you to use the pylonsrc from https://github.com/joshdoe/gst-plugins-vision (you can also try https://github.com/AB-Eskild/gst-plugins-vision/tree/bugfix/pylonsrc_handle_corupt_frames, which is a branch for a PR that attempts to tackle this issue). That repository has a slightly refactored version of plugin that should be better at showing where the error was (although it will still fail if a frame will fail to grab iirc).

One thing to try is to run the pipeline, and then open pylon viewer and run it for a while to see if there are any errors/warnings there. Basler cameras save settings in ram, and running the pipeline will set a lot of values to the plugin's defaults thus what you'll get should be very close to what it would be outputting to gstreamer. joshdoe/gst-plugins-vision#14 (comment) reports that changing framerate/resolution and other parameters seem to affect the frequency of any warnings/errors, so you might also want to try that.

from gst-pylonsrc.

frankSDeviation avatar frankSDeviation commented on July 28, 2024

Hello Zingmar,

Thank you for the response. The only thing I did in issue number 5 was change "goto error" to "return GST_FLOW_OK;" I was not to sure where to place that code block.

I am having issues using the vision plug ins. I am sure I've installed everything correctly but I cant be 100%. I am not sure if I am doing thigns correctly. After installing the plugin, I should just be able to run the pylonsrc plugin correct? or is there another way I am supposed to use the vision plug in?

I have ran the Basler pylonviewer after running the pipeline and everything is running just fine. I do not get any errors at all. I also want to mention that I am able to see the video stream locally by running this pipeline:

gst-launch-1.0 pylonsrc camera=0 imageformat=mono8 width=1600 height=1200 ! videoconvert ! xvimagesink

I will take a look at issue #14 in the vision plugin. I also would like to say that I am not a software engineer. My background is primarily hardware design so I do apologize if I may say some silly things or ask dumb questions regarding compiling or installing software.

Thank you,
Frank

from gst-pylonsrc.

zingmars avatar zingmars commented on July 28, 2024

Try running the UDP pipeline with continuous=false set

I am having issues using the vision plug ins. I am sure I've installed everything correctly but I cant be 100%. I am not sure if I am doing thigns correctly. After installing the plugin, I should just be able to run the pylonsrc plugin correct? or is there another way I am supposed to use the vision plug in?

From what I remember you should be able to just make install it and run, though you'll probably need to uninstall this version first. Also, you might need to clean gstreamer cache (~/.gstreamer-1.0 iirc?)

Thank you for the response. The only thing I did in issue number 5 was change "goto error" to "return GST_FLOW_OK;" I was not to sure where to place that code block.

That probably didn't work because you told gstreamer that the plugin succeeded to grab a frame when it didn't actually provide a frame. I've uploaded two patch files that you can try - 0001-Retry-capture-when-a-frame-failed-to-grab.patch is the solution provided in #5. 0001-Grab-frame-after-failure.patch will make the plugin try another capture if it fails (although I haven't tested it). You can apply a patch file using git am --3way <patch file>.

Download: pylonsrc-patches.zip

from gst-pylonsrc.

frankSDeviation avatar frankSDeviation commented on July 28, 2024

Hello Zingmars,

Thank you for all of your help. I first want to say that I tried applying the patch but for some reason it just wouldn't take. After that I began to play with the gst-plugins-vision code and was finally able to stream a UDP stream with almost 0 latency! This is the pipeline I am using on my host machine:

gst-launch-1.0 -v pylonsrc camera=1 pixel-format=mono8 width=1600 height=1200 ! "video/x-raw,format=GRAY8" ! videoflip method=vertical-flip ! videoconvert ! x264enc bitrate=30000 speed-preset=superfast qp-min=30 tune=zerolatency ! rtph264pay ! udpsink host=XXX.XXX.XXX.XXX port=XXXX

And this is the pipeline I am running on the destination machine:

gst-launch-1.0 -v udpsrc port=XXXX caps = "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" ! rtph264depay ! queue ! decodebin ! videoconvert ! videoscale ! autovideosink sync=true

I have another question, is it possible to send two udp streams from two different cameras at the same time? My application requires me to be able to two cameras running on the same machine. Also since this question was answered, should I start another issue and ask this question there?

thank you,
Frank

from gst-pylonsrc.

zingmars avatar zingmars commented on July 28, 2024

from gst-pylonsrc.

Related Issues (16)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.