I am trying to stream from an IP Camera using H.265, with gstreamer.
I am using a imx8qxp from Variscite.
https://variwiki.com/index.php?title=VAR-SOM-MX8X
I am also using Variscite yocto releases with kernel 5.10.72 or 5.15.60.
These are the gstreamer pipelines I am trying:
gst-launch-1.0 \
rtspsrc location=$URL latency=0 \
! rtph265depay \
! h265parse \
! v4l2h265dec \
! imxvideoconvert_g2d \
! kmssink display-width=800 display-height=480
or
gst-launch-1.0 \
rtspsrc location=$URL latency=0 \
! decodebin \
! imxvideoconvert_g2d \
! kmssink display-width=800 display-height=480
A similar pipeline works for H.264 but not H.265. By 'work' I mean the performance is acceptable. Currently H.265 pipeline says the 'computer is too slow'.
The documentation says imx8qxp supports H.265 decoding. So I am not sure what is missing here.
The camera is 640x480, H.265, 20FPS, Main Profile, I Frame=50, Max bitrate=2048Kbps.
For reference:
root@imx8qxp-var-som:~# gst-inspect-1.0 | grep imx
imx2d: imxg2dcompositor: i.MX G2D video transform
imx2d: imxg2dvideotransform: i.MX G2D video transform
imxaudio: imxuniaudiodec: NXP i.MX uniaudio decoder
imxcompositor: imxcompositor_g2d: IMX g2d Video Compositor
imxvideoconvert: imxvideoconvert_g2d: IMX g2d Video Converter
root@imx8qxp-var-som:~# gst-inspect-1.0 | grep vpu
root@imx8qxp-var-som:~# gst-inspect-1.0 | grep v4l2
video4linux2: v4l2avsdec: V4L2 AVS Decoder
video4linux2: v4l2convert: V4L2 Video Converter
video4linux2: v4l2deviceprovider (GstDeviceProviderFactory)
video4linux2: v4l2h263dec: V4L2 H263 Decoder
video4linux2: v4l2h264dec: V4L2 H264 Decoder
video4linux2: v4l2h264enc: V4L2 H.264 Encoder
video4linux2: v4l2h265dec: V4L2 H265 Decoder
video4linux2: v4l2jpegdec: V4L2 JPEG Decoder
video4linux2: v4l2jpegenc: V4L2 JPEG Encoder
video4linux2: v4l2mpeg2dec: V4L2 MPEG2 Decoder
video4linux2: v4l2mpeg4dec: V4L2 MPEG4 Decoder
video4linux2: v4l2radio: Radio (video4linux2) Tuner
video4linux2: v4l2sink: Video (video4linux2) Sink
video4linux2: v4l2spkdec: V4L2 SPK Decoder
video4linux2: v4l2src: Video (video4linux2) Source
video4linux2: v4l2vc1dec: V4L2 VC1 Decoder
video4linux2: v4l2video1jpegdec: V4L2 JPEG Decoder
video4linux2: v4l2vp6dec: V4L2 VP6 Decoder
video4linux2: v4l2vp8dec: V4L2 VP8 Decoder
video4linux2: v4l2xviddec: V4L2 XVID Decoder
Solved! Go to Solution.
Hi @eduardo3,
I have reviewed your part number MIMX8QX6AVLFZAC and this SoC has support for H265.
However, your high latency can be related to the memory and the Variscite's BSP.
Please contact Variscite to review this issue with the H265 decode and GStreamer plugins.
I hope this information will be helpful.
Have a great day.
Best regards, Brian.
Hi @eduardo3,
I reviewed your provided gstreamer pipelines, and it seems are right.
Could you please provide your iMX SoC part number to make sure this version supports H265 decoding?
I look forward to your reply to review this issue.
Have a great day.
Best regards,
Brian.
On the SoC it reads:
MIMX8QX6AVLFZAC (I guess you need this one)
Other info in there:
SBAJ2208
ON99Z
KOREA SHAJSBE
I also got a slight better result if I allow some latency in the rtspsrc component, something like 200ms. Lower than that, it has not worked for me.
Hi @eduardo3,
I have reviewed your part number MIMX8QX6AVLFZAC and this SoC has support for H265.
However, your high latency can be related to the memory and the Variscite's BSP.
Please contact Variscite to review this issue with the H265 decode and GStreamer plugins.
I hope this information will be helpful.
Have a great day.
Best regards, Brian.