Where do I get v4l2h264dec and other gstreamer plugins for hardware-accelerated video decoding?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Where do I get v4l2h264dec and other gstreamer plugins for hardware-accelerated video decoding?

Jump to solution
3,737 Views
VincasD
Contributor III

Hi,

I got some Chinese tablet  that runs Debian, and it has NXP i.MX 8M Mini 4xCortex-A53 1.6Ghz processor.

uname -a output:

Linux imx8 4.14.98-2.3.0+ #1 SMP PREEMPT Mon Nov 8 02:36:19 UTC 2021 aarch64 GNU/Linux

 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX-8-GStreamer-User-Guide/ta-p/1098942 guide states that "somewhere" where are various gstreamer plugins for encoding/decoding video on IMX processors, but not really sure where do I get them from?

Will I be able to build these plugins for (within?) Debian system?

Thanks!

0 Kudos
1 Solution
3,719 Views
VincasD
Contributor III

It seems I have to use https://github.com/Freescale/gstreamer-imx , with dependencies https://github.com/Freescale/libimxvpuapi and https://github.com/Freescale/libimxdmabuffer . I had to use board toolchain provided by device developers so that imx kernel headers where available, together with some libraries like libg2d, etc.

After building it all, I had to use LD_LIBRARY_PATH, GST_PLUGINS env. variables to help application to find all required libraries and newly built gstreamer plugins, and it works by specifying custom GStreamer pipeline:

rtspsrc location=rtsp://user:pass@host:554/cam/realmonitor?channel=1&subtype=0&unicast=true protocols=udp latency=100 ! rtph264depay ! h264parse ! imxvpudec_h264 ! qtvideosink

Decoding performance is much better, though system still lacks OpenGL HW acceleration, so application is still laggy, but that's other issue...

View solution in original post

0 Kudos
1 Reply
3,720 Views
VincasD
Contributor III

It seems I have to use https://github.com/Freescale/gstreamer-imx , with dependencies https://github.com/Freescale/libimxvpuapi and https://github.com/Freescale/libimxdmabuffer . I had to use board toolchain provided by device developers so that imx kernel headers where available, together with some libraries like libg2d, etc.

After building it all, I had to use LD_LIBRARY_PATH, GST_PLUGINS env. variables to help application to find all required libraries and newly built gstreamer plugins, and it works by specifying custom GStreamer pipeline:

rtspsrc location=rtsp://user:pass@host:554/cam/realmonitor?channel=1&subtype=0&unicast=true protocols=udp latency=100 ! rtph264depay ! h264parse ! imxvpudec_h264 ! qtvideosink

Decoding performance is much better, though system still lacks OpenGL HW acceleration, so application is still laggy, but that's other issue...

0 Kudos