Flash Media Server to Adobe Connect

08_19_2015 Update

I made a few changes to this custom pod. You can register to download at the bottom of this article. The new file will be called fp10VideoPlayer.zip. Some of the changes were simple bug fixes for instance there was a problem accessing a stream with an mp4 extension and prefix, that is now fixed. That means that you should be able to use this with a CDN such as Akamai. Another highly requested feature was the ability to resize the video, that should now be possible. I have not done a lot of testing so use at your own risk.

In this article I will describe how to use a recently created custom pod for Adobe Connect. This custom pod is provided free of change and is provided as is with no additional support or warranty (how is that for some lawyer speak). Briefly, this custom pod allows you to stream high frame rate video from the Adobe Flash Media Server to an Adobe Connect meeting room. I used the collaboration sdk to create a shared experience. In other words if you are a host in a meeting room you can load and setup a connection to both live and ondemand video that you control for the meeting participants. As the host you make the connection and choose the video and when you hit play all participants will see that the video has started to play. This is very different than a typical video player where each individual has their own experience and could be watching different sections of a the same or different videos. This custom pod understands the different Adobe Connect meeting roles (i.e. host, presenter, participant). Only the host has interface elements (buttons, progressbar, etc…). Admittedly  the user interface could use some work and I do intend to improve it so do not beat me up too bad but also do not hesitate to give me advice on improvements.

The following is a simple diagram of the workflow.

Live Video Workflow for Custom Pod
A) Flash Media Encoder B) Flash Media Server C) Custom Pod in Connect Meeting

There are many considerations when ever you consider streaming high quality video. First of all the camera is an important part of the equation. I did a number of tests with web cameras and found that two of the three web cameras that I tested could not consistently produce 30 frames per second of video. Do not skimp on a quality camera. The second, third and fourth and and and considerations are all BANDWIDTH. You cannot stream a 500 kbps stream over a connection that only has 300 kbps available. There are many people that are confused about bandwidth but it is fairly simple. If you look at the diagram above you will notice that you have to send the encoded stream from the camera / laptop to the Flash Media Server and then on to Adobe Connect. You need the appropriate amount of bandwidth at each step. It is not enough to have a great connection from FMS (Flash Media Server) to Adobe Connect you also need an appropriate connection from the source (camera / laptop) to FMS. Often someone assumes that because their wireless card mentioned 54 Mbps that they are covered for streaming video. The key consideration is “usable bandwidth”. I have included the ability to test bandwidth in this application as well as a status indicator that will give you an idea if your connection is appropriate for the video you are attempting to stream.  It is also important to note that available bandwidth changes continuously.  You might find that you do a bandwidth test and have plenty and thirty seconds later you have half as much. It is best not to use a wireless connection as their is more variability and more unknowns with a wireless connection versus a wired connection.

Custom Pod UI:

Lets walk through some of the functionality of the custom pod.  After it is uploaded to a share pod inside of Adobe Connect it should look like the following:

Adobe Connect Custom Video Pod
Adobe Connect Custom Video Pod

The first thing you should understand is that this is the interface that the host will see when they upload the custom pod. The dark green in the progress bar shows the progress of the playing video. The dark blue shows the size of the current buffer. If you do not see any dark blue then there is no buffer and you are probably not having a great play back experience. You will not see a progress bar for live video as there is not enough buffer to show. Notice the green status indicator in the upper left hand corner of the screen.  This indicator will be seen by both hosts presenters and participants. This indicator shows only the local connection status. In other words if you are looking at this indicator it shows your status not a combined or status of other individuals in the meeting. The following table gives a brief highlight of the states and meanings.

  This indicates no connection. Each time you connect the indicator will turn green initially and each time you disconnect it will turn black.
  This indicates the initial connection as well as a video that has enough bandwidth to play and keep up with the video that is being sent from the Flash Media Server.
  This indicates that there are or have been issues with the video playback. Often times this is represents a temporary condition so do not panic the first time you see the indicator turn orange or red.
  This indicates that the issues are getting worse but as stated before this can be temporary so give it at least a few seconds and see if the condition improves.

If someone in the meeting mentions that the video playback is not smooth or the quality is not great you could ask them what the color of the indicator is to get an idea if the problem is bandwidth related. This indicator does not indicate a change in frames per second. It is possible to retrieve fps data from the metadata of the stream but it seems that this does not indicate that actual fps on the passed on from the encoder (e.g. Flash Media Live Encoder).

Adobe Connect Meeting Host:

You will notice that each role in an Adobe Connect meeting has a slightly different view of this custom pod. The host has complete control. As a mater of fact the first host to upload the custom pod retains complete control and all other hosts will see the controls but will only be controlling their local experience. With that said I think that it is a good practice to have only a single host in most if not all meetings. More than one presenter is not an issue but more that one host can create issues regardless if you are using this custom pod or not.  The following is the host view of the custom pod:

Custom Pod with Settings Visible
Custom Pod with Settings Visible

Workflow for live video:

The first step to playing live video is to have a live video source. Keep in mind that if you intend to use a simple web camera your quality will probably not be that much better than what you would get out of the default camera support in Adobe Connect. If on the other hand you have a higher quality camera or would like a higher frame rate follow these steps.

1) setup a computer with enough horse power to encode the video and with enough bandwidth to send that video to the Flash Media Server. Download and install the free Flash Media Live Encoder.

2) setup or use an existing Flash Media Server. There are a great number of resources for getting started with the Flash Media Server.

3) upload the custom pod. The custom pod is in a zip archive. In a share pod in Adobe Connect simply locate the custom pod zip archive on your computer and upload the entire zip.

4) enter the server url and stream name for the video that you are publishing from the Flash Media Live Encoder. It is a simple matter to find the connection stream for the server. You will notice by the example above the entry field that it starts with rtmp. This is the realtime message protocol used by FMS. The next element in the connection stream is the server ip address or dns name. After the slash following the server name or ip address is the application name. This may seem a little strange but this represents a folder name inside the application folder inside the installation folder of the Flash Media Server. Once you have the Flash Media Server installed find the installation folder and open it and inside you will find the application folder. Inside of the application folder you will find a vod and live directory. These are the default applications. If we analyze the following connection url, rtmp is the protocol, the ip address is the address of the Flash Media Server and vod represents the default directory for ondemand streams (i.e. files) inside the application directory.

rtmp://192.168.0.2/vod

The stream name is what ever the file name is for ondemand or what ever name you entered into the Flash Media Live Encoder.

Flash Media Encoder Output Panel
Flash Media Encoder Output Panel

After the all the elements of the workflow are in place it is time to turn on the camera and stream the video from Flash Media Live Encoder to FMS. This is a pretty straight forward task, simply hit the start button in Flash Media Live Encoder.

Once the live video is streaming to Flash Media Server it is time to connect to and play the live stream into the custom pod inside of Adobe Connect.

Custom Pod Settings Panel
Custom Pod Settings Panel

This is the settings panel for the Custom Pod that you will use in the Adobe Connect Meeting room. It allows you to setup and make a connection to the Flash Media Server. It also allows you to choose between ondemand and live streams and test your bandwidth. Notice that the stream name is the same as the the stream field in the Flash Media Live Encoder. If these do not match you will not see video in the custom pod. Also notice that if you want to view live video you must select the Live Stream check box.

Well I think that about covers it. I will post the link to down load the custom pod later today along with a few other links that might be helpful. Please drop me a comment to let me know if it is working or not and any improvements that you would like to see.

I put together a short overview presentation of the custom pod functionality and setup. If you would like to jump right to the link that allows you to register for download it is on slide eight. Please let me know what you think. Note: If you are having trouble with the registration page clear the cache on your browser and reload the page.

Published by

nhippe

I work for Adobe as an SE in focusing on the Flash Media Server family of products.

25 thoughts on “Flash Media Server to Adobe Connect”

  1. If you are serving a large audience, say 1000, will the adobe connect server have to deal with the bandwidth requirements of the 1000 videos that need to be served up? Or does each video get served to the users computer?
    What i’m trying to say is, is the Adobe Connect server a bottle neck of sorts for large quantities of video?

    1. There are several ways to deploy Adobe Connect. First you can install it in your own datacenter, you could also use the Adobe hosted option or go with managed services (Adobe runs it but it is not shared. It is dedicated). If you go with either hosted or managed services you do not pay for bandwidth. If you run the server then you do. The amount of bandwidth required depends on what you are doing with the server. If you intend to serve presentations that were converted from powerpoint the bandwidth requirement is very low. If you add screensharing and a bunch of webcams that will add to the bandwidth requirements.

  2. Very great post. I simply stumbled upon your weblog and wished to mention that I have truly enjoyed surfing around your weblog posts. In any case I’ll be subscribing to your feed and I am hoping you write again very soon!

  3. Hey Nick,

    I just tried out the custom pod with amazon cloudfront and it all worked really well. Very nice and crispy video.

    But the video will always have the same size as the one I specified in flash live encoder. In other words. If I resize the player (custom pod) the video will remain same size, for exp. 640×360.
    I wonder how this plays out on different size screens. Is there a way that I could let the custom pod scale the video? so that it nicely fits the pod on every screen.

    1. I made the decision not to allow sizing as this would affect the quality of the video. I may make this an option in a new release. The up side would be additional control the downside could be pixelation.

      1. That is true. But for most screens where you will serve this video I think bandwidth would be an issue for resolution of video larger than someones screen. I am thinking about adding away to scale just because it bugs me as well but it will be later.

  4. Hey Nick.

    I just got your custom pod working and it works like a charm.

    Some things I noticed;

    I would really like it if the video would fit the entire pod. Right now it has a grey border around it. I think it would look a lot cleaner if it didn’t have that.
    Another thing what would be nice is if it would scale the video. That way it will always fit the player no matter what size screen you have. Right now it doesn’t do that.

    Appart from those two things I think it’s great. I was looking for a way to get better quality video in adobe connect and have the ability to use better hardware like a blackmagic capture card in combination with hd camera’s.
    Of course I can go for Talking stick but they’re really unclear about their pricing and it seemed like an unnecessary step in between. You pod solves this.

    Thanks a lot! I will be testing it again soon.

    ooh yeah what’s also not so nice is that it’s always called fmsplayer.zip. of course I can rename it, but it will always have the .zip as extension.

  5. hey nick, great pod thank you.
    one question, do you plan to integrate http stream to distribute videos also on iPad or iPhone with adobe connect app? if so, bye when do you think.

  6. When I click on the Register button, it takes me to a registration page, and once I register there, I get taken to a connect meeting with the message, “This is a private meeting. Your request to enter has been sent to the host. Please wait for a response.” Am I in the right place?

    1. You will have to close all of your browsers and try again. I think that you have a session established on a different Connect server.

  7. Good morning , i’m testing it as you explained in the online training but i have a question:

    i setup a flash media encoder on one pc and the free flash media server on another , i started encoder on the second pc and connect it to a server , everythings is perfect , on both pc i started adobeconnect as a host and on the second as a relator and i can see the video feed.
    next i connect a third pc (in the same lan) login as a guest into adobeconnect but i see into flash media server a +1 client connection and the total amount of clients goes from 3 to 7 (i don’t know why) and no video feed (i have red bullet)
    why the third pc connect directly to my flash media server ? i’m expecting that there will be this flow:

    flash encoder —–>flash server —–> adobeconnect server hosted
    client ————–>adobeconnect server hosted

    can you explain and help me?
    i have tried now with the third pc to connect it to another internet connection (so is not on the same lan) and now the fmsplayer show me black bullet so no connection and no video….in my understanding this can confirm that your fmsplayer neeeds to take video feed directly from the fms server and not directly from adobeconnect hosted server..
    If this is by design it is not usefull because we have not enough bandwidth and the adobeconnect hosted plan is no more worth…

    Please let me know.
    Regards

    1. Once you are encoding and sending video from the encoder to FMS and have a Connect meeting room created and the custom pod in the meeting room. You will need to add the connection in the custom pod to the fms server. Make sure that the stream name in the custom pod matches the stream name from the live media encoder. After everything is setup and you have a couple of attendees in your room (for the test) click the Connect button in the custom pod. That should work.

      1. maybe i don’t explain well…what you told me is exactly what i have done…but my goal will be using fmsplayer to increase the video quality but using adobe server bandwidth as normally i do with default video pod inside adobeconnect because i have hosted plan service.
        what i have discover is each attendees in the room connect to my internal flash media server , use my bandwidth and because i’m using free flash media server i’m limited to 5 users i think…. that’s why when i use external connection i’m not able to view the video feed.
        can you confirm that by design fmsplayer works as explained or there is something i’m missed?

  8. Hi Nick, really appreciate your work here. If you are accepting contributions to help finance the adding of scaling to the pod I would happily do so, just let me know how, cheers!

    1. I added the ability to scale along with a couple of other features. It has not had a lot of testing so please let me know if it works.

  9. Hi there, is this still supported? Can I still use that custome pod? I am desperately looking for a dramatic increase of the video quality in Adobe Connect. I have multible cameras connected to a Blackmagic Video Switcher and the output of that switcher is fed into a Decklink Studio 2 grabbing card. I am looking for 720p video at least. Can you recommend me a provider (in Europe, Germany would be perfect) who is offering to host an Adobe Flash Media Server?

  10. Hi Nick, I have FMS setup and ready to go on Amazon cloud and am very keen to try your video pod, but keep getting the response: “This is a private meeting. Your request to enter has been sent to the host. Please wait for a response.” Have cleared cache and tried different browsers – no luck. Any other suggestions so I can download the swf file?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s