The community and knowledge team has scoured through search trends on our support site, numerous inquiries to our customer support team, and the forums to find out what kind of topics you are searching for and asking about. One of the trends we found, which I am going to write about today, is questions about encoding best practices and tips for high quality video playback. Encoding is a very broad topic, but I have put together a list of the top 10 things to keep in mind when encoding your videos for upload into Brightcove Video Cloud. I hope this will provide you with some things you may not have thought about when encoding your videos and tips for making the encoding process a little less enigmatic.
Top 10 Tips:
- Think about your audience: Who's watching your videos? How are they watching them? Are people using mobile devices to view your videos?
- Think about your audience: Where is your user watching from? What's their bandwidth?
- Preserve your source file as a rendition
- Capture videos at a constant frame rate
- Be aware of the type of content you are uploading - a lot of action vs. no action at all
- Upload a high quality source file
- Audio is key!
- Exporting your videos: Deinterlacing
- Modifying your transcode settings
- Use video smoothing to improve the perceived quality of video playback
- Think about your audience: Who's watching your videos? How are they watching them? Are people using mobile devices to view your videos?
In order to ensure that you have broad device support, we recommend encoding your videos to H.264. Uploading H.264 videos provides you with more ways to customize your Brightcove content, and H.264 videos are delivered with higher-quality and less bandwidth than many alternative encodings. H.264 allows for broad device support as it provides the best options for mobile video deliver and is the only format that will playback on our HTML5 smart players. Smart players will deliver your video in Flash or HTML5, depending on your viewer's device capabilities. This enables you to use a single Brightcove player that can deliver video in Flash or HTML5, so you don't have to create and manage separate players for each viewer environment and your existing players can automatically load in Flash or HTML5 mode without any custom work or additional JavaScript on your part
- Think about your audience: Where is your user watching from? What's their bandwidth?
If you have a diverse audience watching your videos from around the world with big differences in their bandwidth and internet connectivity, using multi-bitrate streaming is a must. For those with higher bandwidth, a high quality (potentially even your source) video will be delivered automatically. Those viewers with lower bandwidth will not have to sit though long buffering times, but instead will be able to watch a slightly lower quality video instantly. For more information on how multi-bitrate streaming works: Using Multi-bitrate Streaming
On the other hand, if your videos are strictly being viewed, for example, on an internal network with very strong internet connection, you may want to simply upload one high quality video with only one single rendition.
- Preserve your source file as a rendition
If your source video file is in H.264 format, you can choose to keep your original source file as an available rendition. This option lets you retain an H.264 master that can be at an even higher level of quality than Brightcove's highest-quality rendition. In addition, when you select this option, your H.264 source video is available immediately, as soon as the upload is complete, and you don't have to wait for the video to be transcoded before it is available in the Media module and in your players.
- Capture videos at a constant frame rate
To avoid stuttering during playback, record video at a constant frame rate of 25-30 frames per second, and shoot film at constant frame rate of approximately 24 frames per second.
- What is the content in your videos like? Is there a lot of action? Is there almost no action at all (screencast videos)?
Factual or news type videos typically require lesser quality than an action packed longer-form video or an engaging nature film which will require much higher quality.
If you are producing screencast videos with very little action at all, other than the occasional change of a slide, be sure to export the video at H.264 at the same aspect ratio as your recording and use some of these techniques for configuring your player.
One Pass vs. Two Pass encoding: In general, two-pass produces a better transcode than one-pass. However, a two-pass encode does take up a lot more time to perform. For videos that have a lot of motion, we recommend taking the extra time to export as two-pass. You may also want to perform a comparison test to determine if there is a noticeable difference and keep an eye out during any transitions or high motion areas. If you do not see any noticeable difference, stick with the one-pass and save some time.
- What is the quality of your source file?
While Brightcove can certainly preserve the quality of your source file and create multiple different levels of renditions, we do not have any magical powers that allow us to create renditions that are higher quality than the source file you provide us with. We have a list of source file recommendations and export settings to help you create the best quality source file to upload into your Video Cloud account.
- Audio is key!
Most people focus on having the highest possible image quality in their videos and ignore audio completely, however, viewers of your videos are much more likely to drop off if the audio quality drops out or is choppy than if the video is slightly lower quality. For the most part, if a user can't hear what is being said in a video, there is no purpose in continuing to watch it. Make sure to use a good microphone when recording your videos and consider our recommended sound settings.
Audio setting best practices:
- Select 'AAC' when encoding H.264 video
- Sample Rate: When in doubt, choose 44.1 kHz or 48 kHz
- Target Bit Rate: 128 kbps - 160 kbps (192 kbps+ for content that's heavy on audio)
- Exporting your videos: Deinterlacing
If you are working with content that was shot on tape, then we highly recommend you to select the Deinterlace Source Video checkbox when exporting to avoid any sort of interlacing effects on your Brightcove content. If your content was shot to a digital format and is not currently interlaced, then you do not need to deinterlace.
- Modifying your transcode settings
If you have a professional or enterprise edition account, you have the option to modify your transcode settings directly in the Brightcove Studio. By default you have six renditions available in your transcode profile, however if you have a particularly diverse customer base viewing your videos on different devices and connections speeds, you may want to add a few additional renditions (up to 10). Brightcove's default transcoding settings provide a good baseline set of renditions that should meet the needs of most publishers and viewers.
- Use video smoothing to improve the perceived quality of video playback
Brightcove players can use video smoothing to improve the perceived quality of video playback. There's a trade-off, however, between the added quality you might get by using video smoothing and the additional CPU burden that video smoothing imposes on the client. With higher video bitrates, the benefits of video smoothing are less noticeable. Viewers, especially those with less powerful computers, may perceive a choppier video quality due to frame dropping, which may outweigh the benefits of video smoothing.
To balance these concerns, by default, Brightcove uses video smoothing for videos with a bit rate less than 950 kbps, and does not use video smoothing for videos with a bit rate greater than or equal to 950 kbps.
You can override this default video smoothing behavior by including the optional videoSmoothing configuration parameter in your player publishing code and setting it to either "true" (video smoothing always used) or "false" (video smoothing never used.
- JavaScript parameter: <param name="videoSmoothing" value="true" />
- ActionScript parameter: config["videoSmoothing"] = "true";
- Embed: <param name="flashVars" value="playerID=13578640001&domain=embed&videoSmoothing=true" />