Groups | Blog | Home
all groups > macromedia flash flashcom > november 2006 >

macromedia flash flashcom : Webcam video recording bandwidth


Chen.Bekor
11/27/2006 3:36:15 PM
hi all,

When capturing a webcam feed using FMS - is there any loss of information
during the upload process?

If my client has a limited uplink (for instance a poor DSL uplink bandwidth) -
does the resulting FLV file will suffer from lost frames etc.? (is RTMP
reliable or lossy)

If not lossy- how does it works?? does Flash client buffer the recorded webcam
feed on the client (because of the upload limitations)?

where can I find more formal information about this (searched FMS docs with no
luck),

thx,

Chen.
JayCharles
11/27/2006 6:51:08 PM
Yes... the Flashplayer will drop frames if the client's connection to the
server isn't fast enough. You can set the amount of data that is bufferred on
the client (see the FMS docs about the client side netstream buffer), but if
the buffer fills and can't empty out to the server, you'll start losing frames.

As I understand things, audio takes precidence over video, so video frames
will drop before audio data is dropped.

What you might want to do is test your client's connection speeds (you can do
that with FMS), and then employ a little dynamic bitrate/framerate control in
your client side AS. That way, you can ensure that the client doesn't try to
transmit more data than their internet pipe can handle, and you won't lose and
data.

Chen.Bekor
11/27/2006 8:10:53 PM
thanks Jay,

JayCharles
11/27/2006 8:51:22 PM
[q][i]Originally posted by: [b][b]Chen.Bekor[/b][/b][/i]
thanks Jay,

What happens to the client side netstream buffer when I stop recording - is
it going to continue uploading the buffered frames/audio or will it be lost?[/q]

It's up to you to do that in your client side AS.

To stop recording, you want to first detach the camera and mic from the
netstream, and then start checking the buffer. Once the buffer is empty, then
stop publishing. That way, the stream doesn't stop publishing until the buffer
is empty, and you don't lose the end of your video.

If you look at the code in the videorecord component, you'll see an example of
how this is done.

AddThis Social Bookmark Button