Thursday, November 3, 2011

Adobe Media Encoder presets for MP4/F4V

Before you read this post, you may want to refer to two previous posts on related topics:
With Adobe Connect 8 Service Pack 1 (8.1), we added support for playback of MP4/F4V videos encoded using H.264. By the way, the Flash Player has actually supported MP4/F4V formats since Flash Player 9, Update 3 (more on FP support for H.264 here and here).

The biggest benefit that you'll gain from using MP4/F4V videos instead of FLVs is higher quality video at lower bitrates (great for web conferencing). However, the caveat here is that the current version of Adobe Connect Mobile does not support MP4/F4V playback within a meeting room.

For those of you who use Adobe Media Encoder, I'm including some presets which I think work quite well in a Connect meeting room. One quick note - the presets are currently set to 24fps - depending on your source video, you may need to change this value. In most cases, you're OK to just change the value to the source video's frame rate. There are lots of other variables that can be changed when you export video using AME, so be sure to check out this export settings reference
Is there another tool that you use to encode your videos? Let me know what you're using and I'll try to build some similar presets.

Monday, October 31, 2011

Rich Web Conferencing with Adobe Connect

Now I know why Peter Ryce gets paid the big bucks.. congrats to the Adobe Connect team on this compelling video:

I hear more videos are forthcoming. Stay tuned!

Tuesday, October 25, 2011

Integrating Flash Media Server and Adobe Connect

A couple of weeks ago, I posted an article on sharing YouTube content within an Adobe Connect meeting through a custom pod. Since then, I've received a number of e-mails/questions about sharing an external Flash Media Server (FMS) stream within a Connect meeting, so I thought I would address it here.

If you're looking to display an FMS stream (live or on-demand) in an Adobe Connect meetin groom, the good news is that there are already a number of custom pods that can help you with this requirement. I'll highlight the two that I'm most familiar with:

  • Talking Stick from Refined Data: This is the most robust video-centric custom application available for Adobe Connect. In addition to subscribing to an FMS stream and displaying it in a meeting room, Talking Stick has an almost-ridiculous number of features (multi bit-rate streaming, HTTP/RTMP streams, watermarking, remote pan/zoom support for some cameras, etc. etc.). The downside for most people is that this is a commercial offering. Refined Data is pretty upfront about their pricing though, so if you decide to go this route, you'll know what you're getting into. 
     
  • Flash Media Server to Adobe Connect custom pod from my colleague Nick Hippe. On his blog, Nick has posted a detailed article on how to use the pod, as well as setting up Flash Media Live Encoder to broadcast a live FMS stream. This custom pod will work for live and on-demand video streams, and is offered for free.
Note that in both instances, there may be issues with playback of custom pod content in recordings, meaning that instead of seeing your shiny, beautiful video, you may only see a blank pod. So, if you are planning to utilize either solution for higher quality video in Adobe Connect, and you need to record the meeting, I would suggest using a screen capture software like iShowU (Mac) or Camstudio (PC) to capture the playback of the live session. You can take the resulting MP4/AVI file, encode it into FLV and post it to your Adobe Connect content library for streaming playback. 


Have another solution to offer? If so, drop me a line!

Sunday, October 23, 2011

Lighten your bandwidth footprint in Adobe Connect

Dilbert.com 
One of the most common questions I get from companies evaluating Adobe Connect is how much bandwidth it uses. This is a tricky question, because the amount of bandwidth consumed by a meeting is entirely dependent on what is actually being done in the meeting at any given time. Now, Connect is pretty darn good at efficiently managing bandwidth, but if you're inviting people into a meeting room and you have no idea what their bandwidth might be like (think a public webinar/class where attendees could have different levels of Internet connectivity), following some best practices is always a good idea.

Before we get into some tips, keep in mind that streaming activities (screen sharing, webcam video, on-demand video, etc.) generally incur higher bandwidth.

So without further ado, my top 8 tips on optimizing bandwidth usage in a meeting:
  1. Don't screen share your PowerPoint (or PDFs).
    I know that it's not always practical or feasible to upload your PowerPoint slides into the Share pod (or to your Content Library), but you can gain some significant bandwidth savings by sharing PowerPoint content this way. Each slide from your uploaded PowerPoint deck gets compressed/converted to a Flash SWF. The meeting client pre-fetches the slides via progressive download as you're going through the slides. This means that if a participant has a temporary blip in their network, they're unlikely to see an adverse effect on their meeting experience. BONUS: with a converted PowerPoint, you get access to the Sidebar, which lets you jump to specific slides, access your speaker notes, and more.
     
  2. Lower your screen resolution
    If you need to share your desktop, try to lower your screen resolution - I try to stick to 1024x768 whenever possible. This simple step can greatly reduce the amount of bandwidth consumed by screen sharing. When you initiate screen sharing, Adobe Connect continuously takes a snapshot of your desktop, multiple times a second, and pushes it out to your meeting participants as a constant stream. While this simplistic description of screen sharing may not be entirely accurate in the technical details, I think it's easy to see how a larger shared image would be larger in size, and hence require more bandwidth to upload/download. For example, a display set to 1280x1024 contains 67% more pixels than a display set to 1024x768, which ultimately means higher bandwidth. Note that the increased bandwidth requirement may also mean higher latency, both in terms of the shared images being sent to the Connect server, and in terms of these images being pushed out to participants. BONUS: in most cases, sharing your desktop at a lower resolution will also translate into a cleaner, higher quality image for your participants.
     
  3. Clean up your desktop
    We all know your kids (or pets) are super cute (mine are!), and that picture you took on your last vacation looks just like a postcard, but if you're planning to do some screen sharing, things will go much better if you go replace your desktop wallpaper with a standard colour background. While you're at it, you may as well go ahead and clean up any documents/shortcuts on your desktop. If you're the 'sweep under the rug' type of person like me, you can either create a folder on your desktop and drag everything else into that folder, or use an app like Desktopple (Mac - donationware) or Fences (PC- free). BONUS: You'll impress your colleagues and friends with your sparkling clean desktop.
     
  4. Adjust your screen sharing quality
    Under the Meeting menu > Preferences > Screen Share in the Preferences panel, you have the option of selecting the quality and frame rate for screen sharing (low, medium, high). High quality and high frame rate = higher bandwidth. Low quality and low frame rate = lower bandwidth. The default is 'Medium' for both variables and should work for most people. Note that the actual values used for these settings will depend on the room bandwidth preference. Also, this is a sticky/persistent setting in a meeting room (meaning you only have to set it once) and is even inherited via a template.
     
  5. Adjust your room bandwidth preferences
    Under the Meeting menu > Preferences > Room Bandwidth in the Preferences panel, you have the option of selecting LAN, DSL/Cable or Modem. The setting you choose impacts the server-side settings used for screen sharing and video sharing. DSL/Cable is a good option if you're not sure what type of connectivity your attendees will have. Also, this is a sticky setting in a meeting room and is even inherited via a template.
     
  6. Adjust your camera video quality settings
    Adobe Connect's new Preferences panel (Meeting menu > Preferences > Video) lets you set your video quality preference. There are four settings (Low, Medium, Standard, High), and your preference can be changed at any time. So if you are planning on having lots of people sharing their cameras at once, you can set the quality to low, since you'll likely see smaller video tiles anyway. If you decide to just have one large video stream, you can increase the quality to standard or high. Note that these quality settings correspond to server-side settings for frame size, frame rate, and image quality. These settings are easily customized by on-premise customers. Also, this is a sticky setting in a meeting room and is even inherited via a template.

    Another quick note on live video quality - good lighting is probably the most critical factor when it comes to webcam video quality. In most cases, webcams do not have high-end lenses or sensors required to perform well in low light conditions. With poor lighting, this basically translates to higher pixelation in the video image. For cameras, I've had great experience with the Logitech Orbit AF and the Logitech Quickcam C910 models.
     
  7. Pause your camera
    Sharing your video is great. I encourage everyone that I meet with to turn on their webcam. For virtual classrooms or one-to-many sessions, seeing a live video of the presenter adds tremendously to participant engagement. However, I'd say that most of the time, you'd be OK to pause your camera (mouse over your camera stream and click the pause icon on the bottom-right corner of the image). If you're planning on screen sharing or streaming an on-demand video, I always recommend pausing your video for the duration. Again, this reduces the overall bandwidth/connectivity requirements and should result in a better experience for lower bandwidth users. BONUS: If you're an attendee on a low bandwidth connection, you can choose to pause other people's cameras too (for yourself only, not for everyone else). Especially handy if you're connected to the Internet using a data card or mi-fi and you don't have an unlimited data plan.
     
  8. Encode your videos properly
    Admittedly, video encoding is more art than science, but there are quite a few guiding principles to help you ensure the best experience possible when sharing an on-demand video clip. You can read my tips on encoding video here. In most cases, you should be able to get acceptable quality video for under 500kbps. One common mistake I often see is people encoding their video with a large frame size (e.g. 640x480), but when they play back the video in Connect, the Share pod is way smaller than the actual frame size of the video. In this case, you're basically wasting bandwidth. With the Camera & Voice pod, Connect performs some dynamic downscaling of smaller, tiled video streams to minimize bandwidth consumption, but this is not the case with on-demand video. If you encode a video at 1280x720, 3mbps, you'll use the same bandwidth  regardless of whether you've actually sized the Share pod to 1280x720 or 320x240.
Have any other tips to share? Drop me a comment and let me know!


Thursday, October 20, 2011

Using an HD Video Camera to share live video

Sharing your webcam with Adobe Connect is super simple. You plug in your camera, hit the 'Start my webcam' button, confirm the preview and you're good to go.

However, things aren't necessarily as plug-and-play with some HD cameras. I've had some people report that they've run into issues trying to use an HD camera as a video source. There have been two type of issues reported:


Issue Cause Resolution
Black screen when sharing video Your camera's frame size and frame rate is too high for Adobe Connect (black screen). Use a program like Xsplit, which will let you create a virtual camera based on the HD input and expose it to Connect at a more appropriate quality/frame rate (e.g. 640x480, 20fps). Adobe Connect can then use this virtual camera and display it in the meeting.. You can download Xsplit here: http://www.xsplit.com/download


Part of the video is clipped Your camera is capturing video at 16x9 aspect ratio. Our camera & voice pod only supports 4x3 aspect ratio. Change your camera settings to 4:3 vs 16:9.

Thanks to my colleague Heyward for the Xsplit tip.

Sunday, October 16, 2011

Tips on encoding video for Adobe Connect (plus some presets!)

Note: Adobe Connect supports FLV, F4V and MP4 video formats. Not sure which file format to use? Read this blog entry first. This article primarily applies to Flash Video (FLV).

If you're completely new to video, or Flash Video, a good place to start is this Learning Guide on Adobe Developer Connection, which includes a lot of great information.

If you're only interested in playing back video in Adobe Connect, the learning guide might actually be too comprehensive, so I thought it would be valuable to share some Connect-relevant tips.

There are three main factors that determine the overall size and quality of your video:
  1. Frame size - width & height of your video. 
  2. Bitrate (or data rate) - how many kilobits per second are needed to display video. 
  3. Frame rate (or frames per second).
The trick is to figure out the right combination of these three factors that gives you the best video quality at an acceptable target bandwidth (or datarate/bitrate). Here are some general tips:
  • Use uncompressed video: Remember the old 'garbage in, garbage out' principle. For best results, start with the highest quality video source that you have. Also, if you are actually capturing the video, be sure to check the tips on this page
  • Frame size - In most cases, when sharing a video in an Adobe Connect meeting, the Share pod will likely share the available screen real estate with other pods, so keep that in mind when you're deciding how large (or small) of a video frame you want. Also, remember that Connect will automatically rescale the video up or down to fill your Share pod. Having a larger frame size than the size of the Share pod in your layout will just incur additional bandwidth, without any real quality benefit. 
  • Bitrate: Unless you know that all of your participants will have a robust Internet connection, I wouldn't go much higher than 600kbps for a 360p frame. Because video in Connect is streamed to meeting participants (rather than progressive download), only a small part of the video is being buffered for each participant at any given time. If there is a drop in connectivity and the participant's buffer runs out, the video playback will stop until the buffer fills up again. 
  • Frame rate: In most cases, you're likely going to leave the frame rate as-is. However, if you do need to reduce the frame rate, use a number that divides evenly into the original fps. For example, if your original video is 30fps, then your options would be 15, 10, 6, 5, etc. 
  • 2-pass: If you have a choice between 1-pass and 2-pass encoding, go for 2-pass. It takes longer for the conversion process, but you'll get better results. 
  • CBR: The other common option you will see is a choice between constant bit rate (CBR) and variable bit rate (VBR). Since video playback in Adobe Connect is streaming (vs progressive download), CBR is your best bet. 


There are a lot of options for actually converting your video files (future blog topic?) to Flash Video, but if you're using Adobe Media Encoder, feel free to download and use the attached presets:


Tuesday, October 11, 2011

Room persistence, templates and sticky settings.

#Idonthavefactstobackthisup but I think that persistent meeting rooms and templates are two of the top features that customers really like about Adobe Connect.

In Connect-speak, persistence means that the rooms you create with Adobe Connect are always available to you (the meeting host), AND almost anything you do inside the meeting room is automatically saved and retained for use in future sessions. That includes layouts, content, polling, branding, etc. A persistent meeting room is fantastic for any number of use-cases, from having a personal meeting room that's always available for ad-hoc collaboration to structured events like virtual classrooms sessions and/or webinars.

With templates, you can really start to leverage persistence, because you can create the 'perfect' room for any use-case you've identified (e.g. webinar, virtual classroom, e-detailing, product rollout, virtual baby shower, etc.) and you can then turn your masterpiece into a re-usable template that can be shared with all of your colleagues. Not only can this facilitate overall rollout and adoption of Adobe Connect, templates represent a potentially huge productivity gain. Imagine all the time your trainers can save by not wasting it on 'administrivia' related to scheduling sessions and uploading content.

While there is already some pretty good documentation and resources on the topic of persistence and templates, I thought it would be helpful to compile a list of what items/settings persist across sessions in a meeting room, and which items/settings are inherited from a template. I probably missed a couple of items here and there, but I think the list below is pretty exhaustive. FYI, the items in bold came as a bit of a surprise to me. Enjoy!


Persist across sessions Inherited from template
Room Properties
Custom URL Yes No
Audio conference settings Yes No
Language Yes No
Access Yes No
Participants Yes No
Uploaded Content Yes No
Recordings Yes No
Reports Yes No
 
Room Layouts & Pods
Layouts Yes Yes
Layout bar visibility No No
Custom pod titles Yes Yes
Presenter only area Yes Yes
Prepare mode No No
Move and resize pods toggle Yes Yes
 
Attendee List View No No
Number of breakouts Yes No
Breakout setup Yes No
Distribution of breakout participants No No
 
Chat - text size No No
Chat - text color No No
Chat content Yes Yes
 
Notes pod - content
Notes pod - formatting
 
Content in Share pod Yes Yes
Share History Yes Yes
Video playback Yes Yes
PowerPoint - bookmarking Yes No
PowerPoint - annotations Yes Yes
 
Web Links Yes Yes
 
Polls Yes Yes
Poll titles Yes Yes
Poll states Yes Yes
Poll results Yes No
Poll results format Yes No
Poll broadcast results Yes Yes
 
Breakout Rooms
Number of breakouts Yes No
Breakout setup Yes No
Distribution of breakout participants No No
Preferences
Room background Yes Yes
Host Cursors Yes Yes
Room bandwidth Yes Yes
Display name settings Yes Yes
Audio - Enhanced Audio Yes Yes
Audio - Speex Codec Yes Yes
Video quality setting Yes Yes
Screen share settings Yes Yes
Raise hand settings Yes Yes
Attendees display settings Yes No
Private chat setting Yes Yes
Q&A pod setting Yes Yes
Enable webcam for participants No No
Microphone rights No No
Single speaker mode Yes No
Meeting Access etc.
Block guest access Yes No
Block incoming attendees Yes Yes
Block incoming attendees - message Yes Yes
Place attendees on hold Yes Yes
Place attendees on hold - message Yes Yes
Auto-promote participants to presenters Yes Yes
End meeting - message Yes Yes
End meeting - URL Yes Yes
End meeting - Open URL for everyone checkbox No No