[FFmpeg-user] RTMP to RTP using SDP Information provided by Asterisk PBX

Rob Desilets rob at streamingsystems.io
Sat Feb 8 03:17:02 EET 2025


Hi All,

I am a long time ffmpeg user but still consider myself somewhat of a novice and always learning new things.

I have recently learned about phone calling which uses the SIP (Session Initiation Protocol) and SDP (Session Description Protocol) and have an application that I am stuck on.

Specifically, we are using an Asterisk PBX (https://asterisk.org) and I want to send audio from a RTMP feed into a call via RTP.

When I open a SIP call the Asterisk server gives me back this SDP which as I understand it is all the information needed to send the RTP (ports, IP address, codecs etc)

 v=0
 o=- 1674874032 1674874032 IN IP4 10.1.20.135
 s=Asterisk
 c=IN IP4 10.1.20.135
 t=0 0
 m=audio 17560 RTP/AVP 0 101
 a=rtpmap:0 PCMU/8000
 a=rtpmap:101 telephone-event/8000
 a=fmtp:101 0-16
 a=ptime:20
 a=maxptime:140
 a=sendrecv

I am used to command lines in FFMPG and I am trying to get it set up correctly:

ffmpeg -i rtmp://<my server> -vn -ar 8000 -codec:a pcm_mulaw -f rtp -payload_type 0 rtp://23.177.208.145:17560

When I run the above command I see:

SDP:
v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 10.1.20.135
t=0 0
a=tool:libavformat 60.20.100
m=audio 17560 RTP/AVP 0
b=AS:128

So clearly there is some type of a mismatch from what I need and what I am doing.

We see the server receiving the data on port 17560 but it’s just sitting in the UDP queue, Asterisk is never pulling the data so I am thinking something is missing.

Is there a way for me to “read in” a SDP file (I can write it to a local file prior to invoking ffmpeg) from ffmpeg so it will setup properly (destination, codecs, etc) as well as use my “RTMP” as the source input?

Ideally I could just drop the SDP file on the filesystem, invoke FFMPEG with the SDP file + my input RTMP url and away it goes.

Thanks for taking the time to read this.

-Rob




More information about the ffmpeg-user mailing list