Skip to main content
Participating Frequently
July 8, 2009
Answered

FMS 2.0.5 - video image quality versus bandwidth

  • July 8, 2009
  • 1 reply
  • 1790 views

Hi,

Does anyone know if Flash Media Server can be configured to reduce the image quality of a publish stream if available bandwidth goes down or there are delays in the connection?

When I (locally) play back videos recorded on poorer/intermittent connections, video frames are dropped, so the image freezes up.

Thanks in advance for any ideas,

Ajay

    This topic has been closed for replies.
    Correct answer

    Yes... that applies to both publishing and recording. The video coming in from the publisher is what goes out to the subscribers and/or is recorded to file, and there is no API for accessing the video data directly (which is a bit of a drag... it would be nice to be able to reach in and touch those video frames).

    About your settings, remember that the bandwidth settings is in bytes, so your 51200 setting = 400kbps, which isn't all that high (I regularly publish 1Mbps video without issue). The only limiting factor when it comes to publishing bitrate is bandwidth available at the client and at the server, and most often, the limiter is available upload bandwidth at the client side.

    I do't know if Adobe has a published recommendation on publishing  bitrate, but if there is, I suspect it's something along the lines of "make sure you have a fat enough internet pipe to publish your video... don't try pushing an elephant through a drinking straw".

    You are correct about connection degredation... if a publishing client experiences a slowdown, the flashplayer will buffer video consistent with your client side netstream.bufferTime setting (assuming the publishing client is the flashplayer), and then it will start dropping video frames... which will create the jerky, jumpy playback you describe.

    1 reply

    July 8, 2009

    Unfortunately, no. FMS cannot resample or recompress video... it's bits in, bits out.

    You can try using the client side NetStream.receiveFps property, but that tends to make the video very jerky and jumpy.

    Ajay_PAuthor
    Participating Frequently
    July 9, 2009

    Thanks for the info Jay.

    Does that apply to both publishing a stream and playing back a stream? We're mainly concerned with recording.

    I'll look up the FMS 2.0.5 docs.

    Is there a recommendation from Adobe of what kind of quality connection a user needs to record video? The application is set to record with these settings:

    Camera

    bandwidth                51200

    frameQuality            85

    keyFrameInterval      15

    width                       176

    height                      144

    fps                          15

    Microphone

    rate                          22

    The camera bandwidth setting is fairly high, but from what I understand, it's a maximum value the application would be allowed transmit.

    So, just to confirm, if the connection quality deteriorates, frames are going to be dropped, resulting in the kind of jerkiness/freezing I've seen in recordings.

    Sorry if I'm asking the obvious - I'm just trying to get answers for colleagues who aren't familiar with the system.

    Thanks,

    Ajay

    Correct answer
    July 9, 2009

    Yes... that applies to both publishing and recording. The video coming in from the publisher is what goes out to the subscribers and/or is recorded to file, and there is no API for accessing the video data directly (which is a bit of a drag... it would be nice to be able to reach in and touch those video frames).

    About your settings, remember that the bandwidth settings is in bytes, so your 51200 setting = 400kbps, which isn't all that high (I regularly publish 1Mbps video without issue). The only limiting factor when it comes to publishing bitrate is bandwidth available at the client and at the server, and most often, the limiter is available upload bandwidth at the client side.

    I do't know if Adobe has a published recommendation on publishing  bitrate, but if there is, I suspect it's something along the lines of "make sure you have a fat enough internet pipe to publish your video... don't try pushing an elephant through a drinking straw".

    You are correct about connection degredation... if a publishing client experiences a slowdown, the flashplayer will buffer video consistent with your client side netstream.bufferTime setting (assuming the publishing client is the flashplayer), and then it will start dropping video frames... which will create the jerky, jumpy playback you describe.