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 returnIt 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.
