HTML and CSS Reference
not impact the overall file size of the ad unit like it would for progressive downloads. A common streaming server
protocol is the Real-Time Messaging Protocol (RTMP). Originally developed by Macromedia and later acquired by
Adobe, this server protocol supports encryption for content protection and HTTP tunneling to pass through firewall
limitations. Many other streaming servers exist as well, such as the Apple QuickTime streaming server, but they're
all pretty expensive to run and operate unless you're a large company with a strong focus on video delivery. If you're
a major content provider like Hulu or Netflix, a streaming server is more or less a requirement for protecting your
content from download and piracy as well as providing a good user experience.
Clients may ask you to do a live streaming broadcast in real time, for instance taking the video and compressing the
video while transporting over the Web at the same time. This is popular for major events that are publically broadcasted
such as sports, politics, and news. Companies such as Influxis ( http://influxis.com ) make this pretty simple using
technologies that sit on top of Adobe Media Server (formally called Flash Media Server), which supports streaming video
to Flash Player as well as HTML5- video players. However, keep in mind that there are also free alternatives like UStream,
JustinTV, and others, but they do not offer the same support, quality, and service as paid services.
Streaming is also pretty tough on a user experience level because users cannot scrub through the timeline
accurately like a progressive file can. This is because the player needs to ping the streaming server with the update
that the user wants, and because the information is not present on the client side (like progressive), the request needs
to be made at the time the user drops the video playhead, which creates some unwanted video buffering.
There is also what is called adaptive streaming over HTTP that basically transfers small chunks of video
information over standard HTTP protocols, but I'll touch on that in more detail in the following sections.
Bandwidth is a crucial issue on the Web, and you need to be cognizant about how much of it you use for your video
delivery with HTML5. More and more devices than ever before are accessing information, and we as developers and
designers need to spare the bandwidth whenever possible, especially when serving larger files over various network
connections. As an advertiser, you need to respect that a user may be viewing content on a wireless device on a poor
cellular network connection or, worse, offline. Luckily, using sophisticated programming techniques; developers
can take advantage of bandwidth detection and serve appropriate video files to an end user at request time while
throttling the playback if there are hiccups in the user's connection.
I'll now introduce adaptive bitrate streaming . This technology is hardly new, but it's more important than ever
to provide quality video experiences under various conditions by detecting and, well, adapting to them. In adaptive
bitrate streaming, the server pings the user requesting the content and understands to what level the user can handle
the playback and bitrate quality of the video. Earlier I discussed the bitrate of a video file and how the bitrate is
holding all of the information of the video asset. Once the information is gathered about the user's ability to handle
the video content, the appropriate bitrate video is delivered as described by a description or manifest file. This process
happens throughout the video's playback and adapts or changes as bandwidth increases or decreases. This provides
a seamless playback to the end user regardless of connection quality, and it's a feature that is incredibly important
for long-form content, especially on mobile devices. Typical use cases start with a lower bitrate video and ramp up
as bandwidth becomes detected and is found to be more plentiful. This ramp-up time could take a few seconds to
happen, so short-form content may not see the effect take place.
Now that you understand the basics of adaptive bitrate, let's dig into the various technologies that support it and
how to leverage each of the technologies in HTML5 video workflows. Keep in mind that there may not be a standard
in video streaming just yet, but these are the technologies you are encouraged to use when you know your ads will
target specific browsers and devices.
HTTP Live Streaming (HLS) is Apple's specification for delivering segments of a video file (transport streams) over
HTTP by way of an M3U8 file. Apple's Developers Tools include a media segmenter, which is a command-line tool
for Mac users to segment and create a manifest file of the video asset they want to use. Listing 7-4 instructs the media