Flash Video: A Primer

Flash video . . . it’s everywhere. How can you be a part of the Flash video craze?

In this article, we’ll take a look at what’s involved in creating Flash video and getting it online.

Flash: The Online Video Producers Choice

Sure – there are other video format options, but there’s a really good reason to use Flash: it’s most ubiquitous format on the web. 98% of Internet-enabled desktops worldwide have the Flash player installed . . . not to mention hundreds of millions of other devices. As a video content producer, this means your video is accessible by just about everyone. And that’s good news.

From a technical standpoint, Flash also rules. Flash supports H.264 – the next-generation video compression technology in the MPEG-4 standard. H.264 can match the best possible MPEG-2 quality at up to half the data rate. H.264 also delivers excellent video quality across the entire bandwidth spectrum –  from 3G to HD and everything in between (from 40 Kbps to upwards of 10 Mbps). H.264 is commonly used worldwide for both video recording and delivery.

While the format may be the same, until you transcode your  video, it cannot be streamed by Flash. This is because Flash uses advanced streaming methods as well as variable bit-rate control. You know the lag time you experience when uploading your video to YouTube to when you can actually view it? Behind the scenes, transcoding is taking place.

The Process

Flash can be streamed on-demand from a file that lives on the server or as a real-time stream. Either way, the process is similar. Here’s an overview:

– The viewer initiates the process anytime they open a web page containing a Flash file in their browser.
– The Flash plug-in sends two messages to the server initiating the client-server ‘handshake’ via RTMP (Real Time Messaging Protocol).
– This connection is then used to transmit the content from the server to the viewer’s browser.
– The Flash Player plug-in then facilitates the flow of data and provides the mechanism to actually view to content.

The Video

Let’s take a look at the two ways Flash streams: on-demand or real-time streaming.

In general, video on-demand is usually created in a studio, and the resulting file is uploaded to the server, which is then streamed ‘on-demand’ each time a viewer accesses the web page. This is similar to what you see on Vimeo or YouTube. As the viewer, you are usually provided with a set of video controls built into the Flash player to pause, fast-forward, rewind – or by using the time indicator bar – move to any position in the movie.

Conversely, real-time streaming can be done using a variety of technologies, but most commonly centers around hardware or software based tools specifically designed for this purpose. On the hardware side, one of my favorites is Newtek’s Tricaster. Ranging in price from $3,995 to $14,995, they’re not really designed for the hobbyist. But if live streaming is in the big picture for your business, the features you get with a Tricaster are quite a deal compared to the costs involved in traditional broadcast.

On the software side, I’ve been dabbling with BoinxTV, which is pretty impressive. The interface is very easy to use, so you can be up and running within hours. BoinxTV has the ability to save your video to your hard drive, or to be streamed live. For live streaming, the video that BoinxTV creates is output in real time on your computer screen. From here, you output from the screen and provide it as a Flash based video source.

Alternatively, you can add some hardware to the BoinxTV mix, and offload encoding of the video for streaming to a second computer. The DVI signal and the audio from the computer’s built-in audio output are fed into the encoder hardware. This creates a plethora of options, including high quality encoding with the Adobe Flash Media Encoder.

Some Geeky Stuff

In case you’re wondering how it works, here’s a bit of a geeky overview. If you have no interest in the technical aspects, feel free to skip to the next section.

Unfortunately, the internet is not ‘multicast-enabled’. What this means for real-time streaming, is that each person who views your stream must receive a unique sequence of data packets addressed specifically to the user’s device IP address. To make this happen, a ‘reflective server’ – like Adobe’s Flash Media Server, is used to generate multiple streams. Here the basic steps that take place for real-time streaming:

– the audio and video source are fed to a software or hardware based device like the Tricaster or BoinxTV discussed earlier
– the webcasting software or hardware then captures the video, compresses it, and encodes it for Flash streaming
– the ‘reflective’ server (ie – Flash Media Server) then replicates this stream for each real-time viewer
– simultaneously, the viewer is accessing the ‘portal’ or web server which serves as the landing page for the live stream, and the embeded video player

When I say ‘server’, I don’t necessarily mean a distinct box. For large scale applications, multiple ‘boxes’ would definitely be advantageous. But for small scale applications, your ‘servers’ can all exist on the same box. For example, you can run Flash Media Server (the reflective server) on the same box as the web server (ie Apache).

So how does the process work for on-demand streaming? These are the basic steps:

– the video content is be ‘shot’ either using a video camera, or screen capture
– for professional looking content, it should be then edited in your favorite editing app (ie Adobe Premiere Pro or Final Cut Pro)
– add motion graphics, transitions, and effects using software like Adobe After Effects
– export the video
– using and FTP client (ie Transmit on the mac or FileZilla on Windows – or Adobe Dreamweaver, on both platforms) upload the video file to your Flash server.
– create a web page and embed a video player to display your content. This is easiest to accomplish using Adobe Dreamweaver because of its built-in features that easily allow you to connect to Flash Media Server.

And that’s it!

Where do you go from here…

There are a lot of resources on the web for creating Flash video, so here . . . let me Google that for you. Or, subscribe to my RSS feed. In future articles, I will provide step-by-step detail on each of the methods and procedures I described, so that you can implement them for your needs.

Leave a Reply