Попробуйте экспортировать поток файлов RTP в файл дампа (в Wireshark щелкните правой кнопкой мыши пакет RTP → Follow UDP Stream → Сохранить как) и затем отправьте файл через gst-launch
для демультиплексирования. Вам нужно немного поиграть с этим, но это должна быть правильная идея:
$ gst-launch-0.10 filesrc location=dump.rtp ! rtpmp2tdepay ! filesink location=dump.ts
Выше предполагается, что RTP является потоком MPEG TS. Если это что-то еще (то есть raw Vorbis, G.729, PCM, MP3 или что-то в этом роде), тогда вам нужно использовать другой «depayloader». Вы можете использовать gst-inspect
, чтобы узнать это:
$ gst-inspect-0.10 | egrep 'rtp.*depay'
quicktime: rtpxqtdepay: RTP packet depayloader
dtmf: rtpdtmfdepay: RTP DTMF packet depayloader
rtp: rtpdepay: Dummy RTP session manager
rtp: rtpac3depay: RTP AC3 depayloader
rtp: rtpbvdepay: RTP BroadcomVoice depayloader
rtp: rtpceltdepay: RTP CELT depayloader
[...]
GStreamer (включая инструменты gst-launch
и gst-inspect
) должен поставляться со всеми современными дистрибутивами Linux по умолчанию. Если нет, это должно быть довольно легко установить. Очевидно, мой пример очень общий, поэтому вам нужно будет использовать мои предложения, чтобы найти точный ответ самостоятельно. Надеюсь, я дал вам достаточно поддержки, чтобы вы могли это сделать. :)