SDP для FFMPEG (IP-адреса)

Я получаю звук через RTP, поэтому я открываю ввод из SDP, который я генерирую. Медиа исходит от Port_sender, IP_sender. IP и порт сервера для прослушивания: IP_server, Port_server. Вот мой шаблон SDP. Что из {Port_sender, IP_sender, IP_server, Port_server} я должен указать в {%1%, %2%, %3%} для SDP, который я передаю в ffmpeg, и для SDP, который я возвращаю отправителю?

\n\nv=0\n
o=- 0 0 IN IP4 %1%\n
s=name\n
c=IN IP4 %2%\n
t=0 0\n
a=tool:libavformat 57.3.100\n
m=audio %3% RTP/AVP 97\n
b=AS:705\n
a=rtpmap:97 PCMU/44100/2\n"

Отлаживать его с разных IP мне сейчас сложно. Но с одного компа работает отлично.


person Dmitry    schedule 18.03.2016    source источник


Ответы (1)


Я рекомендую вам прочитать RFC 4566, в нем объясняется все, что вам интересно.

  • o= означает Происхождение
  • c= означает Данные подключения.
  • m= означает Описания мультимедиа.

Что касается данного вопроса, я предполагаю, что вы получили SIP INVITE с предложением SDP, и вы должны ответить SIP 200 OK, содержащим ответ SDP.

В этом случае вы должны ответить:

  • %1% -> IP_сервер
  • %2% -> IP_server, предполагая одноадресный сеанс "адрес подключения содержит одноадресный IP-адрес ожидаемого источника данных"
  • %3% -> Port_sender, так как m= — это транспортный порт, на который отправляется медиапоток (порт, определенный отправителем в его предложении).
person Nacho    schedule 18.03.2016
comment
Да, это я понимаю, но главный вопрос заключался в том, что я должен скормить ffmpeg. Потому что он получает SDP как URL-адрес файла (и локально он работает отлично). Но я не могу понять, нужен ли ему порт на сервере для прослушивания потока (и наоборот с клиентом) - person Dmitry; 21.03.2016