Hi, I'm James Chittenden here, solutions
engineer for Google Cloud Platform.
Today I'm going to talk about how to effectively prepare
video assets for streaming delivery
on Google Cloud Platform.
When preparing media files for streaming,
there are many options you have to consider-- from transcoding,
cropping the video files using Google Compute Engine,
leveraging open source libraries-- such as ffMpeg,
HandBrake-- or even leveraging manage offerings,
like Wix media platform, Zing Coder,
and many other commercial offerings.
There are many variables that come
into play that could interrupt playback,
and a few top ones include the diverse devices of your users--
are they running on a mobile device, a desktop, a TV
with a Chromecast?
So you have to account for the different sizes of screens.
Secondly, users with varied bandwidth speeds.
You're going to have some users that have slow connections,
and some of them that are fast.
Thirdly, network traffic from your streaming video server
has to be blazing fast.
And we're going to cover that in depth in the next video.
And then lastly, the performance abilities of the user's device.
Do they have a fast CPU, or a slow CPU?
The goal is to find the right balance between bit rate
and resolution, as it relates to the end user's connection speed
and device ability.
To achieve these goals, we need to leverage
a technique called adaptive streaming.
Let's explore this concept.
So what is adaptive streaming?
Well, adaptive streaming is a technique
of detecting a user's bandwidth capabilities in real time,
taking that information, and adjusting
the quality of the video stream accordingly.
The result is less buffering, faster start times, and overall
a much better user experience for both your high speed
and low speed connections.
Adaptive streaming works by having multiple bit
rates available for the player or server, on a CDN,
potentially, to pull content based on the user's connection
speed and ability.
Let's dig into this concept with an example.
Say I have a large video that I need
to transcode to accommodate users
with mobile resolutions for Android, iOS,
and other mobile devices.
I also want to ensure I have HD versions of the video that's
formatted for big desktop screens, as well as TV devices.
So as a user, they should be able to use
my app on their device and, unknown to them,
multiple streams will be available
and will be seamlessly switched to match their internet
connection as it degrades or improves.
The key is keep this process smooth and seamless.
And when using adaptive streaming,
we can achieve no interruption to playback.
So check out this diagram.
I have a sample video player on Google Cloud Platform,
and it might be serving up multiple formats all at once.
I have a large sample video, 2,612 kilobits per second,
another is 1,600 kilobits per second,
and another 1,200, and 800, and so on.
The goal is to select the right encoding profile
to insure each device that's consuming my video content will
receive the right format and right
size that's appropriate for their connection.
Let's explore how we can prepare our video assets.
When selecting a transcoding tool
there are several options available to leverage.
Depending on your preference, whether you like command line
access for automation, or simplistic user
interface for manual conversion, there's
many open source tools that can be leveraged within Google
Compute Engine to provide an automated video transcoding
pipeline.
The first is ffMPEG.
This is a popular, open-source product
that provides an extensive cross-platform solution
for converting videos to streaming formats.
This tool supports many input container formats.
It's a very mature tool, and it has strong automation
capabilities.
The Nexus HandBrake-- another open-source cross-platform tool
that you can use to convert any video from nearly
any format to a selection of modern, widely
supported codecs.
That's from the open-source side.
From a managed perspective, there
are several fully-managed video processing solutions
that integrate directly with Google Cloud Platform.
Let's look at a couple of the popular options that
could Jumpstart your video solution,
and scale up with your app's needs.
The first is Brightcove Zencoder.
This is a cloud-based transcoding
solution for both live video, as well as video on demand.
You simply push your video to the Zencoder API,
and this managed solution takes care of the rest.
Customers like Funny or Die, SmugMug
have all built their video workflows around ZenCoder
to encode large volumes of video affordably and quickly.
So this same powerful tool set is available for you
as a developer.
The next is Wix media platform.
Another collection of services that
allows you to store, serve, upload, and manage
images, audio, and video files.
This platform allows you to host, transcode, answer
video seamlessly across any internet-enabled device.
If you want to take the work out of standing up your own video
encoding solution, these managed services
are definitely the way to go.
As a quick recap, it's very important
to spend some time thinking through what
your primary objectives are for streaming video content,
from your app to your target users.
You need to think about which options fit your app's needs.
As you can see, there are many options
to leverage on Google Cloud Platform,
from open source tools, to fully managed, third party video
processing solutions.
For more information, please see the links below,
and stick around.
Watch the next video to learn more
about how to effectively serve up
your newly encoded video content using Google Cloud Platform.
That's it for now.
The next step is delivering these video assets
in a blazing fast way.
This is James Chittenden with Google,
and we will see you on the next episode of Launchpad Online.
[MUSIC PLAYING]