Flash CS3 Professional Video Studio Techniques
COW Library : Adobe Flash : Michael Hurwicz : Flash CS3 Professional Video Studio Techniques
I just got through a "first read" of Robert Reinhardt's Flash CS3 Professional Video Studio Techniques. I know I will be returning to it often. I recommend it to any budding-and-beyond Flash videographers out there.
There is a good chance you already know about Robert: He's been a highly visible figure on the Flash scene for the last eight years or so, as the lead author of the Flash Bible series and the Flash ActionScript Bible, and a frequent speaker at industry events like FlashForward, FlashintheCan, and SIGGRAPH. He also maintains the Flash resource site, FlashSupport.com. (In fact, one of the cool things about buying one of Robert's books is that it comes with a support forum on FlashSupport.com, where you may find answers to questions pertaining to to the book. If not, post your question, and Robert himself will likely answer it, if he's not too busy being VP of the Multimedia Platforms Group at Schematic.)
In Flash CS3 Professional Video Studio Techniques, Robert provides a nice balance of conceptual background and hands-on step-by-step instructions, fundamentals and more advanced material.
The book sets out to provide soup-to-nuts guidance on deploying video on the Web using Flash, and does an excellent job, within the limits of 350 or so pages. It goes light on the process of actually creating the video -- planning, selecting a video format and camera, and so on. It provides brief but useful step-by-step instructions on capturing video using Premiere Pro, and using After Effects to perform operations such as color temperature correction, color correction, deinterlacing, and noise removal. Also concise but potentially very helpful is the discussion of the strengths, weaknesses and best uses of Sorenson Spark and ON VP6 compression. There is also a ten-page section on delivery and deployment options, such as embedded video vs. external video, live streaming vs. prerecorded video, and the trade-offs in using a Web Server, Flash Media Server (FMS) or Content Deliver Network (CDN).
All of the above is presented in a practical and hands-on fashion -- not as theoretical background, but as basic advice about what you should do, depending on your particular needs and situation. For example, live streaming with Flash Media Server prevents video from being cached to the user's local disk, making it harder to steal the content. On the down side, many corporate networks block the Real Time Messaging Protocol (RTMP) used by FMS, so users on those networks can't play your videos. How that trade-off plays out for you depends on the audience you're trying to reach and your need to protect your intellectual property.
All of this introductory information takes up about a quarter of the book (75 pages). There's nothing terribly unique or original about it, nor does it attempt to go into any great depth on the topics it addresses. But it does provide a good, solid, objective orientation to the world of Flash video deployment. I predict most readers will feel a lot clearer-headed after reading these 75 pages than, say, after hours of cruising the net browsing similar information, much of which is provided either by companies trying to get you to buy whatever it is they are selling, or by high-level geeks providing detailed, in-depth answers to questions you may not need to ask.
The meat of the book is using the Flash authoring environment (and, to a lesser extent, other Adobe products such as After Effects and Dreamweaver, as well as third-party software such as SWFObject) to deliver a smooth, trouble-free video experience. The author takes a "laddered" approach, starting with the simplest and least flexible deployment methods and working up to increasingly complex and adaptable ones.
He starts with using Dreamweaver to insert an FLV file in an HTML page. This procedure, which can be performed through Dreamweaver's graphical user interface and requires no coding, is explained in step-by-step detail in about two pages. So, if you're a code-shy Dreamweaver user with an FLV file that needed to be on the Web yesterday, go to page 79, and you should be happy in about five minutes.
That's two straightforward ways of getting your FLV video online, and you haven't even cracked open the Flash authoring environment yet.
That comes next, in the section on playing video with Flash CS3 components. This gets a little more involved, largely because the author offers several different approaches, depending on factors such as 1) which Flash Player version(s) you need to support and 2) whether you want to "drag and drop" components to the Stage, or instantiate them dynamically at run time using ActionScript. This is pretty much standard throughout the rest of the book: The author demonstrates several ways to accomplish the same goal -- for instance, an approach that requires Flash Player 9 and one or more other approaches that can support Flash Players going back as far as version 6. The Flash Player 9 approach requires ActionScript 3 (either "under the hood" in components that you use, or as code that you write), while the other approaches use ActionScript 2. Having multiple examples is particularly useful if you want to support several different approaches on your site, or if you are transitioning from one approach to another -- for instance, if you've been using Flash Player 8 and ActionScript 2 and want to move to Flash Player 9 and ActionScript 3.
The book deals extensively with cue points (markers in the video that can be used for navigation or for triggering events such as captions). Cue points can be created either when encoding the FLV file (using software such as the Flash CS3 Video Encoder, Sorenson Squeeze or Flix Pro), or at run time using ActionScript. The book goes into all this in some detail, including a sample application on the DVD that accompanies the book.
The next step in the "ladder" beyond using components is implementing a video player from scratch using ActionScript. As usual, the book shows how to do this with both ActionScript 2 and ActionScript 3. Advantages of the ActionScript-centric approach include smaller file size (potentially as small and as 1KB, compared to 32KB for a component) and more flexibility in customizing the player. The requirement, of course, is a higher comfort level with ActionScript.
The "Production Essentials" section of the book finishes with a discussion of bit rate detection and supporting multiple bit rates, to provide an optimal experience to both high bandwidth and low bandwidth clients. Specifically, the goal is to offer a stellar experience to high bandwidth clients, while lower bandwidth clients can still have a smooth and reliable experience. The approach demonstrated uses SMIL, an XML based format designed for describing audiovisual presentations.
Also demonstrated is "dual buffering", a technique that involves setting an initial low value for the video buffer time, so that the user experiences a quick start when clicking the "Play" button, and then setting the buffer time to a higher value after playback has started, so that the user continues to to experience smooth video playback even if the flow of bits across the Internet is momentarily interrupted for some reason. There's a substantial amount of ActionScript coding involved here, so if you need either or both of these features (multiple bit rates and dual buffering) -- and the SMIL approach to multiple bit rates gives you what you need -- this chapter can save you a lot of time.
The rest of the book (other than appendices) is devoted to "creative explorations" -- four sample applications, which you can adapt and customize for your needs (or perhaps even use as is). The applications are: 1) building a video index and playlist, 2) constructing banner ads and captioned videos, 3) constructing an interactive video host (where the video content "responds" to user clicks) and 4) an application demonstrating "progressive enhancement" techniques aimed at insuring that all clients can access basic content, while those with more advanced browsers, later versions of the Flash Player, or higher bandwidth connections, can have an enhanced experience. This last application is the one most likely to be usable "out of the box", just by substituting your video for the one in the sample application. If you want "progressive enhancement" for your site (and I would think it would be highly desirable for most Flash sites open to the general public) then this chapter alone is probably worth the price of the book.
All in all, this is a valuable book, especially for those looking to push their Flash sites to professional levels of reliability and user-friendliness. I give it five cows.