FMS Bandwidth Detection

Is anyone familiar with the function of the Flash Media Server where it  can detect a user's connection speed and deliver the appropriate quality  version of the video on the user bandwidth detection?
A link to a tutorial describing the process would be very helpful.
Thanks!

http://help.adobe.com/en_US/FlashMediaServer/3.5_Deving/WS5b3ccc516d4fbf351e63e3d11a0773d5 6e-7ffa.html

Similar Messages

  • Bandwidth detection causes bandwidth consumption to spike

    Hi everyone,
    We are having a little problem implementing bandwidth detection with FMS, for some reason when enable it, bandwidth consumption spikes significantly I am wondering why? and if there a white paper somewhere that would talk about how properly implement this feature.
    Kind regards.
    +LA

    Hi,
    I dont think this should happen anyways can you tell exactly how did you concluded this. I mean to say how are you finding bandwidth usage as well as bandwidth detection.
    The following link might be helpful for you.
    http://livedocs.adobe.com/flashmediaserver/3.0/hpdocs/help.html?content=00000072.html#1068 463
    Regards,
    Amit

  • Detecting the optimal upload bandwidth of cam video stream (Dynamic Bandwidth Detection Approach)

    Hello folks,
    i am discovering the wide world of adobe technologies and i am impressed how seamless all is working.
    Anyway i have a tricky problem, at least it seems tricky to me. Here we go: i build up a client (camera+audio conferencing) streaming its camera right to my server (red5). Every client can see the camera streams of each connected particpant. So far so good all is working as expected, we can call this a conferencing solution. Now i would like to improve that by implementing some kind of automatic bandwidth detection in order to adjust the video resolution depending on the current bandwidth "situation" of every participant. Some might have stronger upload bandwidth, some might have a bad or even too low upload bandwidth to even up-stream their video. My client should be able to handle them individually. Those clients who have a good upload bandwidth should be able to up-stream their video in the most high resolution as possible regarding their bandwidth. For those clients having a bad upload connection i assume to reduce their video resolution automatically. The aim behind this automatic bandwidth detection should be to give the most priority to the audio streaming by taking care to not overhelming the bandwidth with heavy camera usage.
    I know there is upload speed tests (onBWCheck, etc), but i assume this test is annoying for the participants as well as they are not reflecting dynamic changes.
    So lets say i start with a default camera resolution of 640 x 480 px for every client. What i need to know is in general two informtion in order to judge about the current bandwidth is enough for the currently up-streamed camera video:
    1) the actual bandwidth used for the up-streaming camera video (based on specific resolution, quality and fps) which is of course dynamicly changing
    2) the max. needed bandwidth which is necessary to perfectly up-stream the camera video regarding the specific resolution, quality and fps of the camera settings
    So here is my current solutions:
    1) the actual bandwidth: every second the currentBytesPerSecond() method of the NetStreamInfo object is of my uploading stream is called to get the currently used bandwidth speed (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStreamInfo .html#currentBytesPerSecond). The documentation says about the currentBytesPerSecond() method: Specifies the rate at which the NetStream buffer is filled in bytes per second. I understood from that phrase that literally this is the amount of bytes filled into the network depending on the current network situation. I tested this by using bandwidth limitation and in fact the currentBytesPerSecond() returns the dynamicly changed amount of bytes sent through the network. So thats pretty OK.
    2) the max. needed bandwidth: here i struggle. I have three principal ideas to know how much bytes/second are max. needed to up-stream the camera video to the server in a proper way:
    * either by experience, which means i manually make several tests to know the max. bytes/second needed for every possible specific resolution, quality, fps (i discovered that different cameras can even produce different results with the same camera settings!)
    * calculate the needed bytes/second (actually i use the H246 codec)
    * or finally the most crazy but maybe most proper solution: beside the up-stream to the server the client streams additionally to the same client application over the localhost network. I find this last attempt the most interesting because it gives very practicaly accurate result how much bytes must be send because almost the bandwidth of the network through the internet isnt used either. The client sends a stream to himself over the internal network IP (localhost, 127.0.0.1). To achieve this i tried to let the NetConnection being connected to localhost and null and publish the video. But the stream didnt worked. Here is my code:
              private function init():void {
                    nc = new NetConnection();
                    nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
                    nc.connect(null);
                    ns = new NetStream(nc);
                    ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
                    ns.client = {};
                    var camera:Camera = Camera.getCamera();
                    if (camera) {
                        videoDisplay.attachCamera(camera);
                    } else {
                        Alert.show("You don't seem to have a camera.");
                    ns.attachCamera(camera);
                    ns.publish("streamname");
                    mainTimer.addEventListener (TimerEvent.TIMER, onMainTimerTickHandler);
                    mainTimer.start();
                private function onMainTimerTickHandler (evt:TimerEvent): void
                    info.text += Number(ns.info.currentBytesPerSecond / 1000).toFixed(2) + " kBytes (OUT)\n";
                private function netStatusHandler(event:NetStatusEvent):void {
                    info.text += event.info.code+"\n";
    The result is a connection success, but the stream didnt send any data due to the fact that ns.info.currentBytesPerSecond returns 0. Also strange is that the NetSteam or NetConnection didn't return any error.
    So folks here i struggle and i ask does anyone out there have any hints or ideas how to solve this tricky one?
    Thanks in advance,
    Markus

    Thanks,I have read that article.  Based on that article the NetStreamInfo.maxBytesPerSecond is not an accurate measurement to base dynamic switching on. This seems to be the basis of the bitrate switching in both the longtail player, and the adobe examples that I have tried.   That article suggests using the dropped frames property, in conjunciton with bufferlength to determine if switching is neccessary.  Unfortunately I can't seem to find a player online which handles this successfully.  That being said, I can't believe I'm the only person trying to implement dynamic bitrate switching for live streams so surely there are some players out there which can do this successfully?  If anyone knows of any code available which does this successfully I would appreciate knowing where!  The examples provided by Adobe https://www.adobe.com/cfusion/entitlement/index.cfm?e=fms35 unfortunately don't work either.

  • Bandwidth Detection + Limelight in AS3

    I used the code from this post here:
    this
    post
    Overall, it works well! However, the FLVPlayback object never
    seems to know the bandwidth. Neither of these work:
    vid.bandwidth
    vid.ncMgr.bandwidth
    They both return NaN. Is there a command I need to add to
    that file? I have some AS2 code that _does_ work for bandwidth
    detection and it calls something like this:
    m_validNetConnection.call ("checkBandwidth", null);
    Any ideas? Anything obvious I'm missing? (I'm hoping the
    answer is: yes)

    What I'm doing is a precaching system for a website.
    (can load files in the background. Example: http://www.cre8ive.de/jcache/jcache-beta.htm)
    I would like to be able to specify which files to load depending on the bandwidth.
    I use a java.net.URLConnection and don't know how I can get the connection speed.
    What about loading a file with a known filesize and taking the time it needs? Is this a way?
    But there must be a better way I think...

  • FLVPlayback Bandwidth Detection??

    I've searched the web and found very little on bandwidth
    detection for FLVPlayback components UNLESS it's in relation to a
    streaming server. Is there no efficient way to accomplish this with
    a regular server and a few FLVs? The documentation is really thin
    on all of the netConnection stuff.
    Any help or direction would be greatly appreciated. A quick
    example is all I need.
    Thanks Anyone.
    Jim

    Originally, I was trying to detect the bandwidth using the
    method outlined
    here.
    Then, depending on either Lo or Hi bandwidth, define an array of
    associated FLVs to play. The problem I'm having is that when the
    SWF hits the SMIL, it will only play the FLV that's first in the
    list, ignoring any bandwidth attributes.
    I just can't seem to find anything that's definite about
    doing this. The INCManager and associated classes are thinly
    described in the documentation.

  • FMS has detected system time is going backwards

    Hi,
    I have a REGISTERED Flash media server version with update 1
    and when i try to start it I have this error in the evnet log :
    "FMS has detected system time is going backwards;shutting
    down server"
    i try to reinstall it, the system clock is ok ! I'm using
    windows 2003 it makes me crazy !!!!!!!!
    thanks

    I ran into this issue today and have not seen any posting regarding how to fix this in Linux, after using find and stat this is how you fix it....
    Within your fms directory their is a file named '. ' notice the extra spacing at the end, or follow this example.
    [root@xxx fms]# stat .*
      File: `.'
      Size: 4096            Blocks: 8          IO Block: 4096   directory
    Device: 301h/769d       Inode: 1167925     Links: 10
    Access: (0775/drwxrwxr-x)  Uid: (   xxx/  xxxxxx)   Gid: (  xxx/xxxxxx)
    Access: 2011-03-22 16:30:47.000000000 -0400
    Modify: 2011-03-22 16:17:13.000000000 -0400
    Change: 2011-03-22 16:28:42.000000000 -0400
      File: `.        '
      Size: 18              Blocks: 8          IO Block: 4096   regular file
    Device: 301h/769d       Inode: 1167965     Links: 1
    Access: (0660/-rw-rw----)  Uid: (    xxx/    xxxxxx)   Gid: (  xxx/xxxxxx)
    Access: 2011-03-22 16:16:53.000000000 -0400
    Modify: 2011-03-23 16:59:26.000000000 -0400
    Change: 2011-03-23 16:59:26.000000000 -0400
    Notice that the directory has a newer timestamp, and the file has a timestamp in the future due to adjusting the system clock.
    Simply stop fms, mv the file, and start fms, tail -f your master.00.log file to confirm things start without a clock error.
    service fms stop && mv '.        '  test && service fms start

  • Group Policy issue - Bandwidth detection failed

    Hi
    We have a major issue affecting multiple users (>100) where they are unable to login to the machine.It looks like core windows services do not start such as DHCPClient, EventLog, UserProfileService.
    Looking at the events on the pc I can see the following events:
    Event 6314
    Group policy bandwidth estimation failed. Group policy processing will continue. Assuming fast link.
    Event 6323
    Group Policy dependency (Network Location Awareness) did not start. As a result, network related features of Group Policy such as bandwidth estimation and response to network changes will not work.
    I can see the NLA service started but I am worried alot more machines will become unusable. A change was made to group policy regarding searching items in the start menu
    User Configuration\Administrative Templates\Start Menu and Taskbar
    Do not search files
    Enabled
    Do not search Internet
    Enabled
    Remove Games link from Start Menu
    Enabled
    Remove Help menu from Start Menu
    Enabled
    Remove Music icon from Start Menu
    Enabled
    Remove Network Connections from Start Menu
    Enabled
    Remove Network icon from Start Menu
    Enabled
    Remove Run menu from Start Menu
    Disabled
    Remove the networking icon
    Enabled
    Remove the volume control icon
    Disabled
    Remove user's folders from the Start Menu
    Enabled
    The clients are mostly Vista SP2 with some Windows 7. DCs are Server 2008.
    Any help in resolving this much appreciated.

    Hi,
    >>Group Policy dependency (Network Location Awareness) did not start. As a result, network related features of Group Policy such as bandwidth estimation and response to network changes will not work.
    Network Location Awareness service is a needed service for processing group policy settings since Windows Vista. It helps check the network location of the computers and helps detect slow link when processing group policy settings.
    Before going further, does this happen to all clients in our environment? Please check our network configuration and make sure that the clients are able to correctly communicate with DCs. Besides, we can try to reinstall network
    adapters to see if it helps. Moreover, please further check event logs to see if some other error events were logged.
    Here, we can also try to clean boot our clients to troubleshoot if this is caused by some third party services or applications.
    Regarding how to perform clean boot, the following article can be referred to for more information.
    How to perform a clean boot in Windows
    http://support.microsoft.com/kb/929135
    In addition, if everything goes clean, we can try to delay the application of Group Policy at startup by following the procedure described in the Resolution section in the article below to see if it helps.
    Windows 7 Clients intermittently fail to apply group policy at startup
    http://support.microsoft.com/kb/2421599
    Best regards,
    Frank Shen
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact [email protected]

  • Creating a streaming Video Player w/bandwidth detection... HELP!

    Hi everyone,
    I've just been asked to create a video player which automatically chooses the correct bitrate video to stream by detecting the bandwidth.
    I have no experience creating a video player so I'm looking for links/resources to do some research on the topic.
    Has anyone here created a video player in Flex? Would it be better to create in Flash or Flex?
    Once again, I have no prior knowledge in this type of creation and could use an experienced developer's opinion on what the first step is towards progress.
    ANY information on this is greatly appreciated.
    Kind regards,
    Dey

    Your best options are to use a streaming server connection. There are numerous companies that can host it for you, or you can buy a license and install it on your existing web servers. But to accomplish this task, you will want to look into what is called Dynamic streaming. Some great tutorials that will get you started are here: http://www.adobe.com/devnet/flashmediaserver/articles/dynstream_on_demand.html and http://www.adobe.com/devnet/flashmediaserver/articles/beginner_dynstream_fms.html
    Take a look through those, they should show you that it is fairly simple to accomplish.
    Good Luck!

  • Bandwidth Detection

    Hey,
    Well, I created a flv video player whose call videos (with a
    variable) et play.
    But I would want detect before the visitor bandwith, stock
    the bandwith in a cookie and play a video whose depend on the
    bandwith (hight or low resolution).
    Please help me !
    --> I work with Flash Mx Proffesionnel 7
    Bonjour,
    alors voilà, j'ai créer un petit lecteur de
    vidéo flv qui appelle des vidéos (grâce à une
    variable) et les diffuse. Jusque là pas de problème. Mais
    j'aimerais effectuer en amont de la lecture un test de bande
    passante. Ce qui me permettrais d'envoyer une video en haute ou
    basse résolution selon le débit de l'utilisateur.
    Et c'est là que ça coince ! Comment puis-je faire
    pour tester la bande passante, concerver le résultat
    (peut-être dans un cookie) et afficher l'une ou l'autre des
    videos en conséquence du résulat ???
    Voilà si vous avez une solution je suis preneuse...
    juste un petit détail : je suis pas une fan de l'action script
    alors please ce qui vous parraît évident ne l'ai pas pour
    moi Merci !
    --> je travail sur Flash Mx Proffesionnel 7

    http://www.sonify.org/home/feature/remixology/019_bandwidthdetection/
    Hope that helps. . . .

  • Automatic Bandwidth Detection Is Broken

    So, it's been awhile since I posted about this problem with 7.4, and it's still not fixed in 7.5. Does anyone know how to draw a bug to the attention of the developers?
    The problem is this. I have created a reference movie for a live video stream. The file defines 2 streams, one intended for dial-up users, and one intended for broadband users. The reference movie is created with the MakeRefMovie utility that allows you to specify the bandwidth required for each stream and the priority for each stream. This allows you to tell it to play the high bandwidth stream in preference to the lower bandwidth one.
    QuickTime 7.5 behaves differently on a PC running Windows XP versus a Mac Mini running OS X 10.4.11. Both systems are connected on the same LAN to the server of the streams so there is far and away enough bandwidth to play the high bandwidth stream.
    The PC always selects the high bandwidth stream successfully.
    The Mac always (and INCORRECTLY) selects the low bandwidth stream.
    The workaround is to modify the Quicktime Preferences on the Mac to change the Streaming Speed from Automatic to a specific data rate in excess of that needed for the high bandwidth stream.
    However, most users are morons and I have to hold their hands to help them change this parameter, and they shouldn't have to do it in the first place.
    [While they are at it, I wish the engineers would make HTTP the default transport as UDP pretty much never works across a NAT boundary, which these days is almost always the case with home users.]
    When is Apple going to fix this thing? Or are all the engineers too busy building iPhones?

    I have some additional info, if that might get anyone to help us out?
    When running the creative diagnostic, during the speaker test, you can select "headphones", "2/2. Speakers", "4/4. Speakers" and so on.
    Well, the first three are kinda switched around. The first is 2/2. Speaker, but the image that shows what speaker its testing shows a headphone. The second selectable configuration is 4/4. Speakers, but the image shows 2 speakers. The third selectable is "headphones", but the image shows 4 speakers. When i test it, I can hear from the delay that it tries to send sound through 4 different speakers when headphone is selected. So there is someting about the software that has gotten switched around, and i have tried uninstalling everuthing and reinstalling fresh drivers. But it doesnt make any difference.
    I have tried just about everything now. I cant get the card to work correctly. Help?
    p.s. Is it just me that cant download the drivers from this site? It just times out, and have done so the last three days. I found the drivers at another site. I just find it strange that the manufacturer cant provide drivers themselves.
    Message Edited by totgeboren on 03-2-2008 0:22 AM

  • Bandwidth detection in Applet

    Hello @all
    Any ideas how I can figure out which bandwidth the connection has on which the user is watching my applet?
    Thanks in advance.
    capa

    What I'm doing is a precaching system for a website.
    (can load files in the background. Example: http://www.cre8ive.de/jcache/jcache-beta.htm)
    I would like to be able to specify which files to load depending on the bandwidth.
    I use a java.net.URLConnection and don't know how I can get the connection speed.
    What about loading a file with a known filesize and taking the time it needs? Is this a way?
    But there must be a better way I think...

  • Detecting Bandwidth Quality for Live Video Streaming

    Hi,
    We have an application that is using FMS to  share slides (swf,jpg, etc) with another client. We added a video as an option. We would like to verify as often as possible the bandwidth quality between communications in order to suggest the user to close video if we notice bandwidth is not optimal.
    We've been experimenting doing a bandwidth detection every 60 seconds, but I am wondering if there are specific guidelines to do this for live video, like how many times one should verify bandwidth? Is it ok to take one reading or should we take a few readings and then average out?
    Taking into consideration that every time we test bandwidth fms seems to flood the connection to figure out the bandwidth, I was wondering if anyone has some insight into this.
    Kind regards.
    +LA

    Please find the best practices for dynamic streaming at this place
    http://www.adobe.com/devnet/flashmediaserver/articles/dynstream_on_demand.html
    Let me know if that doesn't suits your need, then I will try to figure out something else for you.

  • Deliver content based on bandwidth

    Hi experts,
    I have read the part on Delivering video based on bandwidth
    in Developing Media Application Flash Media server documentation. I
    try to apply the thing it suggested, i added the following to
    vhosts.xml:
    <VirtualKeys>
    <Key from="WIN 6,0,0,0" to="WIN 9,0,0,0">fp</Key>
    </VirtualKeys>
    <VirtualDirectory>
    <Streams
    key="fpslow">video;c:\streams\videoslow</Streams>
    <Streams
    key="fpfast">video;c:\streams\videofast</Streams>
    <Streams
    key="">video;c:\streams\videofast</Streams>
    </VirtualDirectory>
    in c:\streams\videoslow and c:\streams\videofast , there are
    2 different files encoded in different kbps. I have tested this
    part and it actually work. However, when i try on the next part on
    adding bandwidth detection procedure, i am not able to addin the
    virtualkey to my client. Below is part of my main.asc, To make
    thing simple, i remove the bandwidth detection procedure and simply
    try to force virtualkey to "fast", but still does not work.
    application.onConnect = function(p_client, p_autoSenseBW)
    p_client.VirtualKey +="fast";
    trace ("Accepting Client Connection...");
    this.acceptConnection(p_client);
    Anyone anyidea? Please help. Thank you in advance.

    Just to addon, i am using FMS 2.0.3. Is 2.0.4 better or it
    will solve this issues?
    Thank you in advance. Cheers.

  • We need to optimize FMS for smooth live streaming can anyone help?

    So we are coming across the same problem over and over again. I called Adobe FMS tech support and they assisted us to achieve what we need, but we are having two main issues.
    First, we need to allow live, clear, and smooth video broadcasting with FMS so we implemented dynamic bandwidth detection so the system can automatically detect a users specifications and adjust video accordingly. This has worked better for us but we are coming across two main issues; first, the video is now very pixilated, and second, we are still get a pause or delay in movement from the stream every 4 seconds or so.
    We are looking to get similar video quality as seen on the justin.tv live broadcasting site. I know this video detection and quality is achievable, but not sure what values we need to put in or are missing?
    Any help would be greatly appreciated.
    Thanks,
    Steve

    I'm interested in doing something similar - bridging FMS to a
    an Asterisk conference. I know breeze has this capability, does
    anyone know if this can be done using FMS?

  • Newbie FMS Output Quality

    Hi there.
    Just installed FMS3.5 and obtain very low output quality. On
    a side-by-side comparison of the capture and output ( FMS start
    page ) the stream on the output size is big time choppy and
    pixelized.
    I read that FMS is doing automatic bandwith detection but
    even that, I'm testing on localhost. Is there some specific setup
    on server side ?
    Thanks for help.

    Since you're using the flashplayer as the publishing client,
    you can expect crappy, blocky video at any bitrate under about
    500kbps. Sorenson spark (the encoder that the flashplayer uses)
    produces very low quality images at low bitrates.
    Your publishing bitrate is determined by the
    camera.setQuality method on the client side. If you are not
    explicitly setting the bitrate, video will be encoded at the
    default 128kbps... very low quality
    The reason the preview image looks better than the final
    image is likely because your are looking at the uncompressed camera
    image in your preview (i.e attaching the camera directly to the
    video object).
    Also, make sure the camera supports 320x240 natively (most
    do, but one never knows). If it doesn't, the flashplayer will
    capture the camera at the camera's closest native resolution, in
    which case the image has to be scaled to fit in a 320x240 area. Any
    such scaling has a negative impact on image quality.
    On the note of automatic bandwidth detection... the included
    server side methods do nothing more than determine a client's
    server-to-client bandwidth. It's up to the programmer to take the
    results of that bandwidth test and apply it to client side
    actionscript (for example, choose a specific version of a video to
    play when bandwidth is limited). FMS doesn't do any sort of
    recompression of streams, so you would need to publish multiple
    streams at varied bitrates to take advantage of bandwidth targeted
    content delivery.

Maybe you are looking for

  • Root.sh failing after installing grid 11g on Linux x86-64

    Hi, Am getting below error while executing root.sh after instalaltion of 11g grid for RAC. [root@erprac2 ~]# /u01/app/11.2.0/grid/root.sh Performing root user operation for Oracle 11g The following environment variables are set as:     ORACLE_OWNER=

  • Case statement problems in oracle forms 6i

    Hello, Any one can help me that how to use case statment in Oracle forms 6i. i have read one thread and there was no proper solution so could any one please let me know to use case statement. Please also let me know which category i should search for

  • Ftp Adapter in ESB Control

    Where do I need to configure the JNDI-location of my ftp-adapter when working with an esb control? If I deploy my esb process now i'm getting a WSIFException because he can't find the configuration settings for the ftp adapter.

  • Using ADS local server on Linux

    Hi, I am using Centos 6.4 and I've installed unixODBC and downloaded and installed the Sybase Advantage ODBC driver for Linux version 11.1.  I unpacked and installed the driver (using setup.pl). I created the following /etc/odbc.ini ; odbc.ini [ODBC

  • N80 Gallery 'problems'

    Hi! I have been a 6280 user and have just upgraded to the N80, i have a couple of minor problems and irritations which may be simple to solve but i can't find them. In the gallery there is the option to look at pictures and videos but i would prefer