I’m struggling with gstreamer pipelines at the moment. I wonder if any of you tried to stream a video (without audio) from a jetson to a computer using Nvidia hardware acceleration module for h264 encoding?my pipeline on my jetson TX2 looks like
appsrc ! 'video/x-raw, width=(int)640, height=(int)480 ! nvvidconv ! \ 'video/x-raw(memory:NVMM), framerate=(fraction)16/1' ! nvv4l2h264enc ! \ video/x-h264, stream-format=(string)byte-stream ! h264parse ! \ rtph264pay pt=96 ! udpsink host=<IP @> port=2345 sync=false"
But I cannot manage to make it work in my app although the same pipeline launched with gstreamer command line works perfectly (with
testvideosrc instead of
sudo gst-launch-1.0 videotestsrc ! 'video/x-raw, width=(int)1280, height=(int)720, format=(string)I420, framerate=(fraction)16/1' ! nvvidconv ! 'video/x-raw(memory:NVMM)' ! nvv4l2h264enc ! 'video/x-h264, stream-format=(string)byte-stream' ! h264parse ! rtph264pay pt=96 ! udpsink host=<IP @> port=3456 sync=false -e
My questions are:
how my pipeline is working in my command line but not in my code?
did any of you manage to leverage jetson hardware acceleration for h264 encoding en streaming?
which parameters did you tweak to have the best performances and best image quality without impacting the rests of calculus going on the jetson (
- on x264 encoding
- on livestreaming
is using opencv instead of gstreamer cpp api a good practice? In my code I have something like
Thank you very much
Have a great day