Our customers make use of Adobe Connect for many different use cases including training, sales, support, incident response, customer outreach, etc… One of the use cases that has been a problem in the past were meetings where a higher video production value was required. For instance imagine a meeting where a CEO and his team address partners or customers in a large scale event. In this scenario a webcam would not be appropriate, typically in these situations you will find that the production team has high end equipment and expects to be able to use it for this event.
Refresher on Video Sources
If you are not familiar with the difference ways to get live video into Adobe Connect, here is a short refresher. Adobe Connect supports nearly any webcam and for that matter nearly any video source as long as the drivers are well written and can be seen by Adobe Connect. That includes typical webcams and capture devices such as the Epiphan AVio. Capture devices have been the only way to bring video in from an external source (e.g. video conference device or high end camera) until very recently. In other words if you had a high end camera with an hdmi port or a video conference device with an hdmi port you could use a video capture device such as the Epiphan AVio to bring that video into an Adobe Connect meeting and display that video in the video pod. Of course the video capture device has to have the appropriate drivers.
With that said, what if your external encoder/switcher/etc… could push out an RTMP stream but was not close to a PC with a video capture device. For some time I have been advocating for the ability for Adobe Connect to accept an RTMP stream from an external encoder such as a Newtek Tricaster. It would allow for more flexibility in the setup for streaming video through Connect and allow for higher production value use cases. Good news, I recently tested a new version of ManyCam and this version does accept an external RTMP stream. This means that a use case that requires an external encoder/switcher (Newtek Tricaster) that can publish an RTMP stream can now work with Adobe Connect.
If you are not familiar with ManyCam , it is a live software switcher that works as a video source in a Connect Meeting, Seminar Room or Virtual Classroom. With ManyCam I can ingest multiple video and or content sources, switch between them, with transitions, and now one of those sources can be an RTMP stream. ManyCam can accept many different input sources including webcams, media such as images and video, IP cameras, etc… but for the purpose of this discussion I will only cover the new ability to use an RTMP stream as a video source.
There are many ways to publish an RTMP stream that you may want to bring into a Connect meeting including Newtek Tricaster, SlingStudio, Wirecast, Epiphan Pearl, Matrox Monarch, etc…. In the past there was no way to bring these into a Connect Meeting, Seminar Room or Virtual Classroom. A simple diagram may help explain the relationship between the video source, ManyCam and Adobe Connect.
I would assume that the people that have read this far have a need to bring an RTMP stream into Adobe Connect. I would also assume they already have a hardware or software video product that can publish an RTMP stream. If that is the case the setup is quite simple. First install ManyCam on the PC where the Adobe Connect client app is installed. In order to add an RTMP stream in ManyCam and have that stream display in an Adobe Connect Meeting, Seminar Room or Virtual Classroom.
I am sure that I do not need to explain the value of video when used in nearly any training or meeting scenario. Because Adobe Connect makes it so easy to upload and stream video to an audience many people make assumptions about the outcome of sharing video, the participant experience. In this article I will attempt to identify issues with playing ondemand video as well as present solutions for those issues.
The first step is to figure out what might go wrong and why. The great news is that there are many tools that can be used to identify issues. Since I am a Windows 10 user my examples and references will be based on Windows 10 but I have to assume that there are similar tools on nearly every other operating system. The problems that I run into typically fall into two categories: bandwidth and/or CPU (pc resources).
Lets start with CPU as an issue to smooth playback of ondemand video. An easy way to test a video before you upload it to Adobe Connect is to simply play it locally to see if you can identify any issues. If the video does not play locally it should be obvious that it will not play well when streamed.
PC Resources (Memory / CPU)
If you know the answer to the question, how do I know if I have enough CPU/memory resources to play ondemand video, you can move to the next section. I have found what I think is the easiest way, which is to use the “Task Manager”. There are several ways to launch it including : right click on the task bar or Ctrl + Shift + Esc keyboard shortcut. Once it is open you will see several tabs.
You can see from the image above that 87% of the CPU is already being used on running applications. Notice that Chrome is using ~52% of the CPU. Also notice that there are 37 tabs open in Chrome. If you play the video locally with little change in the CPU, Memory, etc… and it plays smoothly, that is a good sign. It should also be obvious that if the video playback takes 50% of the CPU, attempting to play that video with less than that amount available is not going to work well. Of course this simple test does not assure that this video will play back when streaming but it is a good start.
Many people will assume that the size of the file on the hard drive is a determining factor in how a video will play, that is not the case. Of course it is not a good sign if you attempt to upload a 40 GB video, just for the fact that you will have problems uploading it. The critical measure for streaming video is bitrate (bits transmitted per second). Bitrate is typically displayed as Kbps/Mbps/etc… (e.g. 600 Kbps or 600 kilobits per second). Lets say that you have a 200MB video file but the bitrate was set to 600Kbps that video should play for most if not all participants in an Adobe Connect meeting, there are a few possible exceptions that I will cover later. I have found that bitrates for ondemand videos less than 1Mbps work for most participants.
So how do you set the bitrate for a video? You set the bitrate when you encode or re-encode the video. There are numerous tools that can be used such as Adobe Media Encoder, Handbrake, etc… I have also written a very simple encoder that you can download from here. The simple encoder that I wrote makes some assumptions in order to make the encoding process as simple as possible. There is a short video that explains how to use it on the same page. It will create two versions of the video : good and best. Best requiring the most bandwidth. If you are planning to encoder video it is a very good idea to quit out of any non-essential applications as the CPU overhead for encoding can be high.
Notice in the preceding image the CPU spiked to 100% of the available resources, while encoding a very short snippet of video.
If you use a more capable encoder such as the Adobe Media Encoder you will see a setting called “Bitrate Encoding” that has a few options: CBR, VBR 1 Pass, VBR 2 Pass. Since you will be streaming this video from Adobe Connect always select CBR.
In order to make this process easier when using the latest Adobe Media Encoder , I have created and made presets available here. These presets assume that the video is in a 16:9 aspect ratio.
Now that we have tackled the two most prominent issues lets cover a couple best practices.
There are many unknowns when it comes to the capabilities of participants in a Connect meeting. For any given audience in an Adobe Connect meeting you could have a wide range of bandwidth capacity, CPU, memory, etc… . You might find that some home users have more than enough bandwidth where some corporate users might have poor connections. Corporate users that have poor connections should make sure that they are not connected to vpn unless they have no choice.
You could have everyone run the test link and / or report back their connection status from the connection widget in the upper right corner of every Adobe Connect meeting room but that might take some time. An alternative way to address bandwidth issues is to encode more than one version of the video you would like to play. In that way if the audience reports issues playing the video, you simply substitute the other lower bandwidth version. You might think that is a difficult process but actually it is simple. Just encode one version that is a fairly high bitrate (see encoding section in this article) say 1Mbps and another lower bitrate say ~600 kbps. Upload them to the content library or directly to the meeting room. There is an upload utility that makes upload a much quicker process here.
The utility supports drag and drop and unattended upload, without it you have to upload each file separately. Now that the files have been encoded and uploaded you can add the second video to a share pod in the Presenter Only Area. If a number of participants are having trouble with the high bitrate video simply drag out the lower bitrate version from the Presenter Only Area. If you are really worried about any issues popping up with the video, create three or even four versions and upload them to the content library so that are ready to go when needed.
This article will be the first in a series that attempts to help customers new to Adobe Connect find the data they are looking for in the format they need it. There are many built in report that are available to different group members (e.g. meeting hosts) in this article I will not differentiate between a meeting host and an administrator, just know that if you do not see the report that I am describing it is probably because you are not an administrator. Lets start with the basics, meeting reports. In Adobe Connect when you create a meeting room it is persistent, in other words it can be reused over and over again.
Meeting Reports from Meeting Detail
A meeting host (build in group the provides the ability and access to an Adobe Connect Meeting) can access the following reports. In order to access this report simply login to Adobe Connect Central and find the meeting detail. The meeting detail can be found by selecting the “Meetings: menu at the top of the window. This is the area where your meetings will be available if you are in the “Meeting Hosts” group.
These reports will return the reporting data that most customers want and use. For instance there is a summary report that shows the number of sessions held in the room as well as peak users per session.
There is of course, attendance data per session.
As well as a list of sessions that shows total attendees per session.
Finally it is possible to return a list of questions from a given session. This may sound like strange wording, “By Questions” but this is not just polling data. You can of course create polls in any Adobe Connect live environment (i.e. Meeting, Virtual Classroom or Seminar room) but you can also delivery a quiz that was created in Adobe Presenter. If you deliver a quiz from Adobe Presenter in a Meeting each question in the quiz is treated as if it were a poll. In other words if there are ten questions in the quiz each question would be shown separately in this report.
This is not the case if the quiz is converted to a Course and served in a an Adobe Connect Virtual Classroom but I will get to that later. If you select the link labeled “view answer distribution…” you will see a report that shows the percentage of attendees that responded to each possible answer.
If on the other hand you select the link labeled “view user response…” you will see a list of users and their answer selection.
You can download this data to a csv file. The problem is that if you had a survey that consisted of a number of questions you would have to download each question separately. I realized this was a problem some time ago and wrote a utility that would allow meeting hosts to download any number of questions that were presented in any of their meeting rooms. You can register to download that utility here. I put together a short video overview of that tool that can be accessed here.
There are other areas in the Adobe Connect web application (Connect Central) to get data about meetings. For instance you can run meeting reports from the reports tab of Connect Central.
Once you select the “Meetings” option you will have options based on your permissions in Adobe Connect. For instance, if you are a meeting host you will have the ability to run reports on your meetings but if you are an administrator you will have the ability to run reports on all meeting hosts meetings.
There are a couple of different types of reports for meetings that are available under the reports tab in Adobe Connect Central.
There is a “Meeting Room Summary Report” and an “Individual Meeting Session Report”. Each allows you to set filters for the fields that you would like to see in the report as well as the date range. The date range is interesting because most of the other virtual meeting and training products on the market have no concept or a very limited concept of persistence. Adobe Connect is persistent by design, in other words the meetings can be reused over and over again and that is the reason for the date range filter.
The summary report is just that a summary of all of the sessions that have been held in the selected meeting room.
Whereas the session report provides information about a specific session held in the selected room.
That is all for the first article in the series. In the next article I will cover bulk downloadable reports and how to use them to get specific information.
In an attempt to fill the gap I tested the BlackMagic Intensity Shuttle but it turns out I was not able to get it to work after testing on two laptops and a desktop with the most recent drivers. It appears that I am not the only one having these problems, all you have to do is search for “BlackMagic Intensity Shuttle issues” to get an idea of the problems people are having using that device.
Second Times a Charm
After a little searching and some advice I decided to give the Epiphan Video AV.io HD a try.
It could not have been any easier to get the AV.io working, no drivers to install, just plug and play. With in minutes I was able to see video in VLC media player. The next test was to see if I could get an image in Adobe Connect. I was able to see the device in the video pod without issue, unfortunately it turns out seeing the video was an issue. I knew immediately what the problem was, the AV.io was passing in too high of a resolution for the Connect meeting. Since there are no drivers or supporting application the only way to adjust the resolution passed to the Connect meeting video pod was a third party application (driver shim). Luckily I have tested several of these and had a couple still installed on my laptop. The first one I tried worked perfectly, ManyCam.
Putting It All Together
The process to get the pieces working together is fairly simple, first you will need a PC with a USB 3 port. I used an aging Lenovo W510. Connect the included USB 3 cable to the USB 3 port on your PC. For a video source I used my Canon 5D Mark III and connected it to the AV.io via hdmi, the Epiphan AV.io comes with an hdmi adapter. Now that everything is connected download, install and run ManyCam.
In ManyCam you set an input by right clicking on an input window and selecting video source. You should see the AV.io in the list.
Once the AV.io is selected make sure that is the video source that is output by ManyCam by transitioning or cutting to that input, you should see it in the main output window (highlighted in red).
Now to change the resolution to something that will work for a Connect Meeting, in the lower left of the ManyCam interface you will see a popup labeled “Resolution”. Click that popup and choose 480p.
Thats it, now its time to login to Adobe Connect and start a meeting. Once the meeting is started you need to select ManyCam as the video source for the video pod. Make sure that you select ManyCam and not the AV.io.
Thats it you should see the video from your camera in the video pod. I like this solution as there are not that many moving parts and the solution is fairly inexpensive.
It seems to happen to nearly every browser they start out with such great promise and then over time well…they bloat. Wouldn’t it be great if someone would create a browser that remained fast and worked at supporting standards in well a standard way?
Standards are only as good as the companies that implement them and that has never been more true than today. Wouldn’t it be great if some company or organization would create a browser that was fast and that company did not have an ulterior motive to manipulate standards and direct traffic to other elements of their company or partners?
We can hope and dream or switch to the next new browser that offers the hope of a faster tomorrow.
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.
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:
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:
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.
The stream name is what ever the file name is for ondemand or what ever name you entered into the Flash Media Live Encoder.
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.
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.
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.