Search code examples
algorithmaudiovoiprtp

RTP: recommend strategy in order to achieve fluent audio stream


Let me explain what I mean when I say fluent audio stream.

I have a VOIP application which transfers PCMU encoded audio wrapped in RTP packages through UDP. I already implemented mechanisms which deal with package losses(as suggested in rfc3550).

The problem is that due to platform limitations(blackberry OS) I need to maintain a constant flow of data i.e. I need to pass X bytes every S milliseconds.
Because of network delays, undelivered datagrams etc. I can't guarantee that constant data flow so I created a separate thread which compensates the packages which were dropped or delivered late with fake packages("silence").

So my question is - can anyone suggest a good way to combine the fake packages and the real ones? I realize that adding a fake package automatically increases the lag and maybe I should ignore a real RTP packages after that but as I said this is because of platform limitations and I am willing to make compromises with the quality of the audio and have some additional speech loss.


Solution

  • You need to read up on:

    • Jitter Buffers
    • Packet Loss Concealment

    These exist to handle exactly the sort of problems you're dealing with.