Orin NX Gstreamer AV1 Round-Trip (Missing av1parse?)

Hi, I’m trying to round-trip AV1 encoded on my Orin NX using a basic gstreamer pipeline, and am unable to do so.
A similar H265 pipeline fails, but works when I run it with the h265parse element, so I’m wondering if I need the equivalent for AV1. But gst-inspect1.0 doesn’t list an av1parse element for the Nvidia gstreamer.

Does anyone have any thoughts on how to enable this? My end goal is livestreaming, but I’m trying a very simple pipeline first.

Here’s the pipeline I’m attempting to run:

gst-launch-1.0 videotestsrc ! video/x-raw,framerate=30/1,width=1920,height=1080 ! nvvidconv ! nvv4l2
av1enc enable-headers=1 ! video/x-av1 ! queue ! nvv4l2decoder ! nvvidconv ! xvimagesink

And the error:

Setting pipeline to PAUSED ...
Opening in BLOCKING MODE
Opening in BLOCKING MODE
Pipeline is PREROLLING ...
NvMMLiteOpen : Block : BlockType = 282
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 282
Redistribute latency...
NvMMLiteOpen : Block : BlockType = 283
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 283
NVMEDIA: Need to set EMC bandwidth : 846000
NVMEDIA_ENC: bBlitMode is set to TRUE
ReadObuHeader 579: Unsupported bitstream
NVMEDIA: NvMMLiteNVMEDIAProcessVES: 1824: NvMediaParserParse Unsupported Codec
Stream format not found, dropping the frame
Stream format not found, dropping the frame
Stream format not found, dropping the frame
Stream format not found, dropping the frame
Stream format not found, dropping the frame
Stream format not found, dropping the frame
NVMEDIA: NvMMLiteNVMEDIADecDoWork: 2228: NVMEDIA Video Dec Unsupported Stream
Invalid OBU type 11 ReadObuHeader 569
NVMEDIA: NvMMLiteNVMEDIAProcessVES: 1824: NvMediaParserParse Unsupported Codec
NVMEDIA: NvMMLiteNVMEDIADecDoWork: 2228: NVMEDIA Video Dec Unsupported Stream
ReadObuHeader 579: Unsupported bitstream
NVMEDIA: NvMMLiteNVMEDIAProcessVES: 1824: NvMediaParserParse Unsupported Codec
NVMEDIA: NvMMLiteNVMEDIADecDoWork: 2228: NVMEDIA Video Dec Unsupported Stream
NVMEDIA: NvMMLiteNVMEDIAProcessVES: 1824: NvMediaParserParse Unsupported Codec
NVMEDIA: NvMMLiteNVMEDIADecDoWork: 2228: NVMEDIA Video Dec Unsupported Stream
Invalid OBU type 12 ReadObuHeader 569
NVMEDIA: NvMMLiteNVMEDIAProcessVES: 1824: NvMediaParserParse Unsupported Codec
NVMEDIA: NvMMLiteNVMEDIAProcessVES: 1824: NvMediaParserParse Unsupported Codec
NVMEDIA: NvMMLiteNVMEDIADecDoWork: 2228: NVMEDIA Video Dec Unsupported Stream
ERROR: from element /GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0: Failed to process frame.
Additional debug info:
/dvs/git/dirty/git-master_linux/3rdparty/gst/gst-v4l2/gst-v4l2/gstv4l2videodec.c(1848): gst_v4l2_video_dec_handle_frame (): /GstPipeline:pipeline0/nvv4l2decoder:nvv4l2decoder0:
Maybe be due to not enough memory or failing driver
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Invalid OBU type 13 ReadObuHeader 569
NVMEDIA: NvMMLiteNVMEDIAProcessVES: 1824: NvMediaParserParse Unsupported Codec
Freeing pipeline ...

Trying this with H265 yields similar results with the following pipeline:

gst-launch-1.0 videotestsrc ! video/x-raw,framerate=30/1,width=1920,height=1080 ! nvvidconv ! nvv4l2h265enc ! vid
eo/x-h265 ! queue ! nvv4l2decoder ! nvvidconv ! xvimagesink

But this works:

gst-launch-1.0  videotestsrc ! video/x-raw,framerate=30/1,width=1920,height=1080 ! nvvidconv ! nvv4l2h265enc ! vid
eo/x-h265 ! queue ! h265parse ! nvv4l2decoder ! nvvidconv ! xvimagesink

Hi,
The gstreamer version is 1.16.3 in Jetpack 5 releases and av1parse plugin may be added in later release.

On Jetapck5.1.1, please use mastroskamux and mastroskademux plugins like:

gst-launch-1.0 videotestsrc is-live=1 ! video/x-raw,framerate=30/1,width=1920,height=1080 ! nvvidconv ! nvv4l2av1enc ! video/x-av1 ! matroskamux ! queue min-threshold-time=100000000 ! matroskademux ! nvv4l2decoder ! nvvidconv ! xvimagesink
1 Like

Thanks, that appears to work.

My next step was splitting that across a udpsink/udpsink into two pipelines, but it doesn’t reliably play there. I need to start the sink first, and then the source, and any interruption to the stream seems to break the link. Any thoughts on how to fix this?

There is no update from you for a period, assuming this is not an issue any more.
Hence we are closing this topic. If need further support, please open a new one.
Thanks

Sorry for the late response, is this still an issue to support? Thanks

Sorry for late reply, but you may also see : Av1 hls - #8 by Honey_Patouceul and try TCP streaming to host.