GStreamer pipeline for streaming microphone audio to Axis horn speaker via RTSP backchannel [closed]

1 day ago 1
ARTICLE AD BOX

I’m trying to stream live audio from a Windows PC microphone to an Axis horn speaker that supports ONVIF Profile T audio backchannel. My goal is to use GStreamer to send audio packets via RTSP backchannel.

Here’s the C++ code I’m using to launch the pipeline:

const char* pipeline_desc = "wasapi2src device='{2EEF81BE-33FA-4800-9670-1CD474972C3F}' ! " "audioconvert ! audioresample ! audio/x-raw,format=S16LE,rate=8000,channels=1 ! " "mulawenc ! rtppcmupay pt=0 ! " "rtspclientsink location=rtsp://root:[email protected]/axis-media/media.amp";

The pipeline builds, but when I run it I get:

ERROR: Could not open resource for reading and writing. enc0> completed state change to NULL ... have FAILURE change_state return

It looks like the Axis device rejects the connection. I suspect I may be using the wrong RTSP URL or missing the correct backchannel parameters.

What I’ve tried:

Verified the microphone source (wasapi2src) works locally.

Used mulawenc at 8 kHz mono (PCMU), which the Axis horn supports.

Tested with rtspclientsink to the default /axis-media/media.amp URL.

Questions:

How should a GStreamer pipeline be structured to send audio to an Axis device’s RTSP backchannel?

Is there a specific RTSP URL or parameter (e.g. backchannel=1) required for Axis horns?

If RTSP backchannel isn’t supported directly, is there a way to send RTP/UDP audio with GStreamer to the Axis horn?

Any working GStreamer pipeline examples (Windows microphone → Axis horn speaker) would be very helpful.

Read Entire Article