Hey,
I have 3 cameras and one mic connected.
I want to record videos from all 3 cameras to HLS, but the first one to capture and mix in the audio from the mic as well.
When I run the following pipeline (video only, no audio) everything works well:
nvarguscamerasrc sensor_id=0 sensor-mode=0 tcp-port=85540 gamma=0.45 ee-mode=0 awblock=0 aelock=0 exposuretimerange=“500000 12500000” exposurecompensation=0.0 gainrange=“1 22” alc-mode=0 ispdigitalgainrange=“1 1” ! video/x-raw(memory:NVMM), width=4056, height=3040, format=(string)NV12 ! nvvidconv interpolation-method=4 top=272 bottom=2768 left=76 right=3980 ! video/x-raw(memory:NVMM), width=3216, height=2064, framerate=30/1, format=NV12 ! queue ! nvv4l2h264enc maxperf-enable=true control-rate=1 bitrate=50000000 iframeinterval=30 insert-sps-pps=true ! video/x-h264, stream-format=(string)byte-stream ! queue ! h264parse ! queue ! mpegtsmux name=muxcam0 ! hlssink location=/user/recordings/%06dcam0.ts target-duration=5 nvarguscamerasrc sensor_id=1 sensor-mode=0 tcp-port=85550 gamma=0.45 ee-mode=0 awblock=0 aelock=0 exposuretimerange=“500000 12500000” exposurecompensation=0.0 gainrange=“1 22” alc-mode=0 ispdigitalgainrange=“1 1” ! video/x-raw(memory:NVMM), width=4056, height=3040, format=(string)NV12 ! nvvidconv interpolation-method=4 top=272 bottom=2768 left=76 right=3980 ! video/x-raw(memory:NVMM), width=3216, height=2064, framerate=30/1, format=NV12 ! queue ! nvv4l2h264enc maxperf-enable=true control-rate=1 bitrate=50000000 iframeinterval=30 insert-sps-pps=true ! video/x-h264, stream-format=(string)byte-stream ! queue ! h264parse ! queue ! mpegtsmux ! hlssink location=/user/recordings/%06dcam1.ts target-duration=5 nvarguscamerasrc sensor_id=2 sensor-mode=0 tcp-port=85560 gamma=0.45 ee-mode=0 awblock=0 aelock=0 exposuretimerange=“500000 12500000” exposurecompensation=0.0 gainrange=“1 22” alc-mode=0 ispdigitalgainrange=“1 1” ! video/x-raw(memory:NVMM), width=4056, height=3040, format=(string)NV12 ! nvvidconv interpolation-method=4 top=272 bottom=2768 left=76 right=3980 ! video/x-raw(memory:NVMM), width=3216, height=2064, framerate=30/1, format=NV12 ! queue ! nvv4l2h264enc maxperf-enable=true control-rate=1 bitrate=50000000 iframeinterval=30 insert-sps-pps=true ! video/x-h264, stream-format=(string)byte-stream ! queue ! h264parse ! queue ! mpegtsmux ! hlssink location=/user/recordings/%06dcam2.ts target-duration=5
But when I add audio in camera 0 (sensor_id 0, 85540) using the following pipeline, I get errors:
nvarguscamerasrc sensor_id=0 sensor-mode=0 tcp-port=85540 gamma=0.45 ee-mode=0 awblock=0 aelock=0 exposuretimerange=“500000 12500000” exposurecompensation=0.0 gainrange=“1 22” alc-mode=0 ispdigitalgainrange=“1 1” ! video/x-raw(memory:NVMM), width=4056, height=3040, format=(string)NV12 ! nvvidconv interpolation-method=4 top=272 bottom=2768 left=76 right=3980 ! video/x-raw(memory:NVMM), width=3216, height=2064, framerate=30/1, format=NV12 ! queue ! nvv4l2h264enc maxperf-enable=true control-rate=1 bitrate=50000000 iframeinterval=30 insert-sps-pps=true ! video/x-h264, stream-format=(string)byte-stream ! queue ! h264parse ! queue ! mpegtsmux name=muxcam0 ! hlssink location=/user/recordings/%06dcam0.ts target-duration=5 alsasrc device=hw:tegrasndt186ref,1 ! audio/x-raw, format=(string)S32LE, layout=(string)interleaved, rate=(int)48000, channels=(int)1 ! queue ! audioconvert ! voaacenc ! muxcam0. nvarguscamerasrc sensor_id=1 sensor-mode=0 tcp-port=85550 gamma=0.45 ee-mode=0 awblock=0 aelock=0 exposuretimerange=“500000 12500000” exposurecompensation=0.0 gainrange=“1 22” alc-mode=0 ispdigitalgainrange=“1 1” ! video/x-raw(memory:NVMM), width=4056, height=3040, format=(string)NV12 ! nvvidconv interpolation-method=4 top=272 bottom=2768 left=76 right=3980 ! video/x-raw(memory:NVMM), width=3216, height=2064, framerate=30/1, format=NV12 ! queue ! nvv4l2h264enc maxperf-enable=true control-rate=1 bitrate=50000000 iframeinterval=30 insert-sps-pps=true ! video/x-h264, stream-format=(string)byte-stream ! queue ! h264parse ! queue ! mpegtsmux ! hlssink location=/user/recordings/%06dcam1.ts target-duration=5 nvarguscamerasrc sensor_id=2 sensor-mode=0 tcp-port=85560 gamma=0.45 ee-mode=0 awblock=0 aelock=0 exposuretimerange=“500000 12500000” exposurecompensation=0.0 gainrange=“1 22” alc-mode=0 ispdigitalgainrange=“1 1” ! video/x-raw(memory:NVMM), width=4056, height=3040, format=(string)NV12 ! nvvidconv interpolation-method=4 top=272 bottom=2768 left=76 right=3980 ! video/x-raw(memory:NVMM), width=3216, height=2064, framerate=30/1, format=NV12 ! queue ! nvv4l2h264enc maxperf-enable=true control-rate=1 bitrate=50000000 iframeinterval=30 insert-sps-pps=true ! video/x-h264, stream-format=(string)byte-stream ! queue ! h264parse ! queue ! mpegtsmux ! hlssink location=/user/recordings/%06dcam2.ts target-duration=5
The errors:
CONSUMER: 1662452847.723 - Report for camera 0: missing frames: 1, missing time:0.067
CONSUMER: 1662452847.806 - Report for camera 1: missing frames: 1, missing time:0.067
CONSUMER: 1662452847.854 - Report for camera 2: missing frames: 5, missing time:0.200
WARNING | Error: gst-core-error-quark: Can’t record audio fast enough (13): gstaudiobasesrc.c(849): gst_audio_base_src_create (): /GstPipeline:pipeline0/GstPipeline:pipeline1/GstAlsaSrc:alsasrc0:
Dropped 217088 samples. This is most likely because downstream can’t keep up and is consuming samples too slowly.
Error: gst-core-error-quark: Can’t record audio fast enough (13): gstaudiobasesrc.c(849): gst_audio_base_src_create (): /GstPipeline:pipeline0/GstPipeline:pipeline1/GstAlsaSrc:alsasrc0:
Iv’e been searching and trying to fix this for couple of days now, any help would be appreciated!