[Live-devel] Birates in Video-Streams
Eric Peters
epeters at graphics.cs.uni-sb.de
Fri Aug 13 18:02:34 PDT 2004
Ross Finlayson wrote:
>
>> with increaseReceiveBufferTo() you can increase the socket receive
>> buffer size only up to the value in /proc/sys/net/core/rmem_max. this
>> means you have to do both: call this method and change the
>> configuration in /proc.
>
>
> Thanks for the clarification. (Note that this appears to be an issue
> for Linux only.)
>
>> this requires that anyone who wants to view high quality video
>> streams with a libLiveMedia based application needs to have
>> 1. root privileges
>> 2. knowledge about his OS that most average users don't have
>
>
> It seems to me that if the OS's socket receive buffers are undersized,
> then *any* receiving software (not just this software) is going to be
> susceptible to packet loss.
To check this we tested the following scenario. We have a streaming
application, like testMPEG1or2AudioVideoStreamer, on the one side and a
receiver application on the other side. This receiver application is a
small programm which is listening on a given port. If there are data in
the socket it is reading a packet from the udp socket into a data
buffer. Then it parses the payload type and sequence number out of the
RTP header. On both sides we added debug messages containing the
sequence number, payload type and size of the packet. So we can check
wether a sender's packet was completly received by the application.
The two applications ran on different machines in our network. We have a
100 MBit network and the machines aren't very fast. On the receiver
machine we have a rmem_maxsize of 64k.
We used three different files to stream. Two files are recorded directly
from a IVTV-Card with bitrates of 9Mbps and 50Mbps. The third file was
encoded from a dvd with 5.5 Mbps. With the 5.5 and 9 Mbps files we
reached error quotes lesser than 0.1%.
With the biggest file we had an error quote less than 2%.
So you can see that it is possible to handle such strong streams with linux.
Perhaps you can optimize your network code.
If your are interested in the complete scenario I can pack the files and
put them on a web page.
Eric
More information about the live-devel
mailing list