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