Reverse Engineer RTP Parameters

Sebastian de Castelberg sebu at kpricorn.org
Wed Sep 28 07:28:52 PDT 2011


Hi list,

I'm trying to reverse engineer a RTP audio stream from and to a
proprietary device. The data is sent in UDP packets to a multicast
address (see the enclosed wireshark dump [1])
With the following gst pipeline I was able to hear the audio coming
from the device. (The device sends data to 232.0.2.1 and receives data
from 232.0.2.2)

  # 'client' pipeline
  gst-launch-0.10 udpsrc multicast-group=232.0.2.1 auto-multicast=true
port=49253 \
  multicast-iface="eth0" caps="application/x-rtp,
media=(string)audio,clock-rate=(int)8000,encoding-name=(string)L16" \
  ! rtpL16depay ! alsasink

I haven't yet found a gstreamer setup for the opposite way, streaming
to the device. The following pipeline just produced a crackling noise
on the device:

  # 'server' pipeline
  gst-launch-0.10 audiotestsrc ! audioconvert ! \
  audio/x-raw-int,depth=16,rate=8000 ! rtpL16pay ! udpsink
host=232.0.2.2 port=49253

The output changes to a constant noise when adding channels=8 to the
caps string.

Based on the attached dumps [1], [2], do these pipelines make sense?
What combination would you suggest for the server pipeline? How can I
modify the RTP payload type and timing?

Thanks for your help
Sebastian

#########################################################
[1]: Wireshark dump proprietary device (2 packets)
#########################################################

No.     Time        Source                Destination           Protocol Info
      8 0.026451    <localip>          <multicastip>             RTP
   PT=DynamicRTP-Type-98, SSRC=0x7D9AFD54, Seq=3, Time=240

Real-Time Transport Protocol
    10.. .... = Version: RFC 1889 Version (2)
    ..0. .... = Padding: False
    ...0 .... = Extension: False
    .... 0000 = Contributing source identifiers count: 0
    0... .... = Marker: False
    Payload type: DynamicRTP-Type-98 (98)
    Sequence number: 3
    Timestamp: 240
    Synchronization Source identifier: 0x7d9afd54 (2107309396)
    Payload: e7ff1900f8ffdeff19004400d6ff3b003b00bcff19000000...

No.     Time        Source                Destination           Protocol Info
     10 0.036594    <localip>          <multicastip>             RTP
   PT=DynamicRTP-Type-98, SSRC=0x7D9AFD54, Seq=4, Time=320

Real-Time Transport Protocol
    10.. .... = Version: RFC 1889 Version (2)
    ..0. .... = Padding: False
    ...0 .... = Extension: False
    .... 0000 = Contributing source identifiers count: 0
    0... .... = Marker: False
    Payload type: DynamicRTP-Type-98 (98)
    Sequence number: 4
    Timestamp: 320
    Synchronization Source identifier: 0x7d9afd54 (2107309396)
    Payload: 88000000a9001100effff8ffd6ffbcff35ffa3ff78ff67ff...

################################################################
[2]: Wireshark dump reverse engineered gstreamer 'server' pipeline (2 packets)
###############################################################

No.     Time        Source                Destination           Protocol Info
   2498 58.790631   192.168.0.30          232.0.2.1             RTP
  PT=DynamicRTP-Type-96, SSRC=0x37E90F89, Seq=34530, Time=2083047297

Real-Time Transport Protocol
    10.. .... = Version: RFC 1889 Version (2)
    ..0. .... = Padding: False
    ...0 .... = Extension: False
    .... 0000 = Contributing source identifiers count: 0
    0... .... = Marker: False
    Payload type: DynamicRTP-Type-96 (96)
    Sequence number: 34530
    Timestamp: 2083047297
    Synchronization Source identifier: 0x37e90f89 (938020745)
    Payload: dd50000022b0414658246496652459bc43b825b20337e05c...

No.     Time        Source                Destination           Protocol Info
   2501 58.831841   192.168.0.30          232.0.2.1             RTP
  PT=DynamicRTP-Type-96, SSRC=0x37E90F89, Seq=34531, Time=2083047627

Real-Time Transport Protocol
    10.. .... = Version: RFC 1889 Version (2)
    ..0. .... = Padding: False
    ...0 .... = Extension: False
    .... 0000 = Contributing source identifiers count: 0
    0... .... = Marker: False
    Payload type: DynamicRTP-Type-96 (96)
    Sequence number: 34531
    Timestamp: 2083047627
    Synchronization Source identifier: 0x37e90f89 (938020745)
    Payload: 398e52d8625666335dfa4aa52e7d0cd6e9a9c922af169e9d...


More information about the gstreamer-devel mailing list