I’m running a gstreamer pipeline with nvcompositor to show multiple cameras simultaneously.
My pipeline previously ran with omx264enc and worked well, however it looks like on a new device (orin AGX) there are no omx plugins anymore. I’ve switched my pipeline to use x264enc
and this is working, but it’s extremely slow and unusable:
./test-launch "( nvcompositor name=comp \
sink_0::xpos=0 sink_0::ypos=0 sink_0::width=1280 sink_0::height=720 \
sink_1::xpos=1280 sink_1::ypos=0 sink_1::width=1280 sink_1::height=720 \
sink_2::xpos=2560 sink_2::ypos=0 sink_2::width=1280 sink_2::height=720 \
sink_3::xpos=0 sink_3::ypos=720 sink_3::width=1280 sink_3::height=720 \
sink_4::xpos=1280 sink_4::ypos=720 sink_4::width=1280 sink_4::height=720 \
sink_5::xpos=2560 sink_5::ypos=720 sink_5::width=1280 sink_5::height=720 \
! nvvidconv ! x264enc ! rtph264pay name=pay0 pt=96 \
v4l2src device=/dev/video0 ! video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)720 ! nvvidconv ! video/x-raw(memory:NVMM), format=(string)RGBA ! comp. \
v4l2src device=/dev/video1 ! video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)720 ! nvvidconv ! video/x-raw(memory:NVMM), format=(string)RGBA ! comp. \
v4l2src device=/dev/video2 ! video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)720 ! nvvidconv ! video/x-raw(memory:NVMM), format=(string)RGBA ! comp. \
v4l2src device=/dev/video3 ! video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)720 ! nvvidconv ! video/x-raw(memory:NVMM), format=(string)RGBA ! comp. \
v4l2src device=/dev/video4 ! video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)720 ! nvvidconv ! video/x-raw(memory:NVMM), format=(string)RGBA ! comp. \
v4l2src device=/dev/video5 ! video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)720 ! nvvidconv ! video/x-raw(memory:NVMM), format=(string)RGBA ! comp. \
)
I’m attempting to switch in nvv4l2h264enc
but haven’t yet been successful. Here’s the pipeline I’m testing (I’ve tried with both v4l2src
as well as nvv4l2camerasrc
but neither work.
./test-launch "( nvcompositor name=comp \
sink_0::xpos=0 sink_0::ypos=0 sink_0::width=1280 sink_0::height=720 \
sink_1::xpos=1280 sink_1::ypos=0 sink_1::width=1280 sink_1::height=720 \
sink_2::xpos=2560 sink_2::ypos=0 sink_2::width=1280 sink_2::height=720 \
sink_3::xpos=0 sink_3::ypos=720 sink_3::width=1280 sink_3::height=720 \
sink_4::xpos=1280 sink_4::ypos=720 sink_4::width=1280 sink_4::height=720 \
! nvvidconv ! nvv4l2h264enc ! video/x-h264, profile=baseline, stream-format=byte-stream ! h264parse ! rtph264pay name=pay0 pt=96 \
v4l2src device=/dev/video0 ! video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)720 ! nvvidconv ! video/x-raw(memory:NVMM), format=(string)RGBA ! comp. \
v4l2src device=/dev/video1 ! video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)720 ! nvvidconv ! video/x-raw(memory:NVMM), format=(string)RGBA ! comp. \
v4l2src device=/dev/video2 ! video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)720 ! nvvidconv ! video/x-raw(memory:NVMM), format=(string)RGBA ! comp. \
v4l2src device=/dev/video3 ! video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)720 ! nvvidconv ! video/x-raw(memory:NVMM), format=(string)RGBA ! comp. \
v4l2src device=/dev/video4 ! video/x-raw, format=(string)UYVY, width=(int)1280, height=(int)720 ! nvvidconv ! video/x-raw(memory:NVMM), format=(string)RGBA ! comp. \
) "
Does anyone have any ideas?