Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

27.11.2009, 11:48

RTP Pakete senden fehlerhaft

Hallo an alle,

vorab mal die Frage kennt sich hier jemand mit dem RTP Protokoll aus?

Gruß
CrazyPlaya
Arbeitswut ist eine psychische Störung, die schon mit einer Tasse Kaffee und einem netten Gespräch geheilt werden kann

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

27.11.2009, 15:41

Ich weiß zumindest mal, dass es bevorzugt zum schnellen übertragen unsensibler Datenmassen (wie z.B. Video-/Audiostreams) verwendet wird. :P

3

27.11.2009, 15:51

Aber du weißt nicht zufällig warum wenn ich RTP Pakete versende und zwar VOIP technisch über einen Gateway(Asterisk) wie so dann die Ausgabe an einem IP Phone viel zu schnell ist. Mache ich bei nach jedem Senden eine Pause von 15ms rein wird halbwegs normal abgespielt. Setze ich die Pause auf 10ms ist das Abspielen zu schnell und setze ich auf 20ms dann leiert die Ausgabe wie eine langsam abgespielte Schallplatte. Timestamp und SequenceNummer werden korrekt übertragen.
Arbeitswut ist eine psychische Störung, die schon mit einer Tasse Kaffee und einem netten Gespräch geheilt werden kann

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

27.11.2009, 16:39

Möglicherweisse ist der Timestamp falsch (zu unpräzise etcpp). Am besten liest du dir die entsprechenden Stellen über timing/synchronisation in rfc 3550 durch.

5

27.11.2009, 16:48

Zitat

RFC3550
If an audio application reads blocks covering 160 sampling periods from the input device, the timestamp would be
increased by 160 for each such block, regardless of whether the
block is transmitted in a packet or dropped as silent.

The initial value of the timestamp SHOULD be random, as for the
sequence number.


Genauso mach ich es. Ein Zufallswert initialisiert den zeitstempel und für jedes neue Paket wird 160(20ms) aufgerechnet. Ebensogroß wie der zu übertragende Payload ist.
Also das ist korrekt laut RFC.

Ebenso mit der SequenceNummer. Wird mit einem Zufallswert initialisiert und für jedes neue Paket mit 1 inkrementiert.
Arbeitswut ist eine psychische Störung, die schon mit einer Tasse Kaffee und einem netten Gespräch geheilt werden kann

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

27.11.2009, 19:18

Ja, dann wird dir nichts anderes übrig bleiben als das Tagewerk eines jeden Coders: Bugtracking. ;) Viel Spaß! :)

Werbeanzeige