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.

Sound Quality

Some of you may know that I have tried my hand at encoding video. I have come up with settings that I have found work fairly well in Adobe Connect. With that said I have always turned down the quality of the audio but wondered if people actually noticed. I found an article with audio samples that tells me that they may not. Give it a try and let me know how you did on the tests.

Connect Survey Reporting

Adobe Connect is a feature rich solution for immersive online meeting experiences from small group collaboration to large scale webinars. I have often been surprised by the seemingly endless way customers are able to put Adobe Connect to work because of the inherent flexibility of the platform.  With that said I recently was asked by a potential customer how they would be able to use Adobe Connect for surveys. The specific ask was related to seeing and exporting survey question responses. It turns out that this is not as simple as I thought and that is the reason for this post.

Adobe Connect has a published publicly available webservice api, unlike some competitors. I decided to use the webservice api to make this workflow much easier. At the end of this post you will find directions that will allow you to download the application. It is a simple application that requires that you use the Adobe Connect web application (Adobe Connect Central) to find the meeting or course that you would like to retrieve data from copy the sco-id ( do not worry if this does not make sense as I will explain), paste it into a field in the application and click a button to retrieve the results. There is also an option to export the results to csv.

This application will allow you to retrieve poll results from a meeting as well as responses from a course. If you are not sure what I mean by meeting and or course this should help. So what does it take to use this application? First you will need to register so that you can download the application. After you have installed and opened the application you will be presented with a login screen.

Survey Report Login
Survey Report Login

 

You will need an administrator login for this application to work. In other words only someone in the Adobe Connect Administrators group will be able to use this application. The first field is the account url, there is an example below this field of the format. This would not be the url to a meeting so make sure not to include the meeting extension. The username and password should be self explanatory.

Once you enter the information hit the login button and give it a few seconds to login.

 

Once the login is complete you should see the following:

Survey Report UI
Survey Report UI

 

It is a very simple application in that all you can do is enter a sco-id (will be covered shortly), retrieve and export the results. Well ok you can do a little more. You can drag to arrange columns, expand and collapse at the question level. By the way only questions that have the results visible can be exported. Each question is expanded by default but if you did not want to export certain results you could simply collapse that question and it would not be exported in the csv.

Alright where do you get this sco-id that is required to get the poll and or survey results? It is very simple. When you login to the Adobe Connect web application (Connect Central) you should be able to navigate to the meeting and or course that has the results you would like to retrieve. If you are not familiar with Connect enough to find the meeting and or course please take advantage of some of the resources available on ConnectUsers.

Lets start with a course, you will find courses under the training tab in Connect Central. They have the single book icon and will have the word course under the “type” column heading.

 

The following is a course:

Course
Course

Notice the single book icon. If you click the title, in this case “Meridien report quiz score” you will see the detail for that course.

For instance you will see the course name, course id, Summary, etc… This is where you will find the sco-id. It is actually in the url field of browser. You will know if you are looking in the right place if the url starts with your account url. For instance if your account url is http://acme.adobeconnect.com you will see something like the following:

http://acme.adobeconnect.com/admin/course/sco/info?sco-id=794180125&tab-id=625226553&training=true

Notice that this url starts with your account and has several other elements until you get to the “?”. Notice that just after the “?” is “sco-id“, that is label for the value you need. In other words look for the sco-id then an “=” then a number. In this case 794180125, yours will be a different number. Now copy that number (just the number and NOT  “sco-id“), in this case you would just copy 794180125 and paste it into the field in the survey reporting application, like so.

 

Paste sco-id
Paste sco-id

 

Now you are ready to retrieve the report data, just click the button labeled “Get Survey Data”.  Keep in mind that this will not work for curriculum but if you have courses that are included in a curriculum you can get the reporting data from those courses individually. It is as easy to use to retrieve meeting polls, just navigate to the meeting and copy the sco-id from the url.

Make sure that you are looking at the Name, Summary, Start Time, etc… of the meeting. That way you know that you are getting the sco-id of the meeting and not the directory that the meeting is in. Depending on the amount of data you might need to give it a couple of seconds to come back. The buttons will be disabled while it is retrieving the data.

Expand collapse rows
Expand collapse rows

 

As I said before, you can expand and collapse rows using the arrow icon. A collapsed series is not exported when you use the export feature. That is really all there is to it. If you want to report on another meeting or course after the first, simply click the x button to the right of the field where you pasted the sco-id and paste sco-id from a different meeting or course.

 

Well the only thing left is the download. I have setup a simple registration to better understand who is downloading and using the application. Just click here to register.

 

Adobe Connect Connection Test

I have had numerous requests for a connection test that allows a user to enter the specific server they are trying to connect to as oppose to a generic test that tests port and protocol access to an external server. I created a simple application that does just that, allows a user to enter a connection string to a server they are attempting to access. You may ask, how would they get the connection string? If they are having issues someone will need to send them the connection string (i.e. email, IM, etc…). This could also be used to test connectivity to a new on premise server. So how do you find a connection string to an Adobe Connect Meeting? Simply have someone launch a meeting, hold down the shift key and select “About Adobe Connect” from the “Help” menu.

Find an Adobe Connect Meeting connection string.
Find an Adobe Connect Meeting connection string.

If you were holding the shift key you would then see the following dialog box.

Adobe Connect Meeting connection string
Adobe Connect Meeting connection string

Copy the text, notice that it starts with rtmp. Open the connection test application and paste the text as seen in the following:

Adobe Connect connection test application
Adobe Connect connection test application

 

Notice that there are three separate and successful tests. Adobe Connect can make connections using variations of the rtmp protocol as well as use different ports. It is a good idea to test using rtmp, rtmps (rtmp over SSL) at a minimum. It is a simple matter to change the first reference to rtmp to rtmps and to change the first reference to port 1935 to port 443.  As an example the following string will test a connection to the server using rtmp over port 1935:

rtmp://arzbs8.adobeconnect.com:1935/?rtmp://pcparapg06:8506/meetingbs3app/545995061/679960997/

The following connection string to the same server will test a connection using rtmps over port 443:

rtmps://arzbs8.adobeconnect.com:443/?rtmp://pcparapg06:8506/meetingbs3app/545995061/679960997/

This application has not been extensively tested and is provided as is with not warranty or support.

So how do you get the application? Simply fill out the registration at the following link. Once I approve the registration you will receive an email with a link to download the application.

Registration

I hope you find it useful.

 

 

 

 

 

High Quality Video In Adobe Connect

This article assumes that you have some knowledge of and access to an Adobe Flash Media Server as well as the free live encoder from Adobe called the Flash Media Live Encoder.

I wrote a simple custom pod that will allow you to stream high quality live video from the Flash Media Server to the free custom pod mentioned here that is being shared in a meeting room in Adobe Connect. For now the custom pod only supports live video not vod (file based video).

This approach does not nullify bandwidth requirements but it allows you to benefit from the capabilities that Flash Media Server provides around streaming high quality video.  In other words if you stream a 2 Mpbs video to this custom pod hosted in a Connect meeting room the attendees of that meeting room will need more than 2Mbps to view it. The reason they will need more than the video requirement is that the Connect meeting room as a bandwidth requirement as well that needs to be taken into account.

When you download the custom pod you will notice that it is just a Flash file (swf). This custom pod is provided free as is with no support. Open an Adobe Connect meeting room. Open a share pod if one is not already open and click the button labeled “Documents” from the popup menu select “Select from My Computer…”. Navigate to the custom pod (fmsVideo.swf) select and upload it to the meeting room.

Notice the green dot in the upper left hand corner of the custom pod. That is used to open and close the settings. The setting will automatically close when the custom pod makes contact with a Flash Media Server. It also functions as a visual indicator of your connection state. Green indicates that you are connected and red indicates that you are not connected. The indicator does not change immediately when you connect or disconnect there may be a several second delay between changes in that indicator.

You will also notice in the preceding  screen (custom pod) that only two elements are required in order to play the live stream ( server url starting with rtmp and the stream name). These elements  correspond to settings in the Flash Media Live Encoder output panel.

Once you have the stream published from Flash Media Live Encoder to the Flash Media Server simply copy and paste the FMS URL and Stream (name) from the Flash Media Live Encoder into the same fields in the custom pod and hit the connect button. That should do it.

You can download the custom pod here.