I have an issue using provided nvvidconv and nvxvimagesink Gstreamer plugins as I want to use the hardware acceleration to read a mp4 h264 video. My ultimate goal is to use our custom sink (raw-rgb), but I have an issue using the classical one xvimagesink.
I’m using the video small.mp4 available here http://techslides.com/demos/sample-videos/small.mp4. Retrieve it on your board.
gst-launch filesrc -v location=/small.mp4 ! decodebin2 ! nvvidconv ! 'video/x-nvrm-yuv, width=640, height=354' ! nvxvimagesink &
This command build a “simple pipeline” using the converter and the sink provided by nvidia. Moreover we are using a capsfilter to fix the format AND the size of the video output (640x354).
This is working fine, video is well displayed (OK)
Then I want to use another sink, the classical one, xvimagesink.
If I do not use scaling, everything is working fine. See the following command.
gst-launch filesrc -v location=/small.mp4 ! decodebin2 ! nvvidconv ! xvimagesink &
Video is well displayed (OK)
But if I need scaling and rgb format , when I type the command :
gst-launch filesrc -v location=/small.mp4 ! decodebin2 ! nvvidconv ! 'video/x-raw-rgb, width=640, height=354' ! xvimagesink &
gst-launch filesrc -v location=/small.mp4 ! decodebin2 ! nvvidconv ! 'video/x-raw-yuv, width=640, height=354' ! xvimagesink &
This command build a “simple pipeline”, using only the converter from nvidia then the xvimagesink. All these caps are compatible, according to the
This is NOT working fine, video is NOT displayed (NOK), pipeline never go in playing state.
- Is there a known issue with these Gstreamer plugins ?
- Do we have to use the both nvvidconv AND nvxvimagesink to obtain a complete hardware accelerated scaling ?
- Do we have a way to obtain further documentation on these Gstreamer plugins ?
- Is there a way to have nvvidconv scaling and get a raw RGB output format ?
- Moreover, when I am using gst_x_overlay_set_window_handle(nvsink, properWindowXID) (using gstreamer c++ API), I am facing a crash (segmentation fault). This crash doesn’t occurs when using xvimagesink instead. I there any known issues around this method and nvxvimagesink?
Many thanks for your help !