Video Streaming in Flash CSCI 4220 Network Programming

  • Slides: 12
Download presentation
Video Streaming in Flash CSCI 4220 – Network Programming Kacper Harabasz

Video Streaming in Flash CSCI 4220 – Network Programming Kacper Harabasz

Challenges • Video’s major problem is compression, which leads to many proprietary formats. •

Challenges • Video’s major problem is compression, which leads to many proprietary formats. • Today’s major players are Microsoft, Real, Apple’s Quick. Time, and now Flash.

Why Choose Flash? • Other players can require video drivers on top of their

Why Choose Flash? • Other players can require video drivers on top of their players. For example Div. X. • Flash circumvents this by converting stream able media to its own format, which is better compressed and optimized for streaming, although at a loss to quality. • It is really easy. Adobe has done most of the work for you.

Streaming in Flash • Flash is Vector, not Bitmap based. • Images are represented

Streaming in Flash • Flash is Vector, not Bitmap based. • Images are represented as a set of points and geometric figures, as opposed to pixels. • Adobe is the ‘leader’ in both markets, with Photoshop (bitmap), Illustrator (vector), Director Suite (vector). • Free alternates are The Gimp (bitmap) and Inkscape (vector).

Streaming in Flash • Thanks to this vector representation, Flash can save considerable space

Streaming in Flash • Thanks to this vector representation, Flash can save considerable space over other formats. • This is done by storing the representation of an image in the first frame of animation, and than having each successive frame hold information on how the vector changes. • The actual codec belongs to Sorenson Media, and the product is called Sorenson Squeeze. • Most other formats stream on a per pixel basis. Each pixel that changes from frame to frame must be sent in the stream.

Progressive Download • Flash Player caches the media as it is downloaded from the

Progressive Download • Flash Player caches the media as it is downloaded from the destination. This is a very convincing imitation of streaming. Some Limitations are: – It cannot be used for live events, only stored video files. – It is less efficient than true streaming. – It cannot automatically adjust for the end user's connection speed. – It is not secure, the video file is saved on the end user's computer. – The end user cannot jump ahead to a later part of the video until it has downloaded.

Flash Media Server • In Adobe’s own words, “The product is server based software

Flash Media Server • In Adobe’s own words, “The product is server based software which runs media applications developed for it with the Flash authoring tool. ” • Works by opening a "persistent connection" between the server and client. In a normal server/client relationship the client sends periodic requests to the server as required. With a persistent connection the server and client are in constant, controlled contact. • Handles Bandwidth detection, Player detection (flash version), Dynamic buffering, basically everything that usually gives network programmers a headache.

Case Study - You. Tube • Developed by Steve Chen, Chad Hurley, and Jawed

Case Study - You. Tube • Developed by Steve Chen, Chad Hurley, and Jawed Karim, while working at Pay. Pal. • Needed a way to post a video online after a party. At that time, there was no easy way to do it.

How is it done? • When a user uploads a video to You. Tube,

How is it done? • When a user uploads a video to You. Tube, an ‘agent’ processes the upload to produce a. flv (Flash Video File) using Adobe’s Video Encoder. Also, a still image is captured to represent the clip during search results and previews. • A short 10 -12 char, randomly generated string serves as the ‘key’ for the media.

How is it done? • Flash Player and Flash Media Server • Player embedded

How is it done? • Flash Player and Flash Media Server • Player embedded into webpage. • The embed calls a url, which is re-written to hit a script that converts the ‘key’ to the location of the media on the Flash Media Server. A new url is constructed, and the script forwards the original embed call to a Flash Player with the location of the media on the Flash Media Server.

How is it done? • Now that it is correctly referencing the media, the

How is it done? • Now that it is correctly referencing the media, the Flash Player and Flash Media Server interact to stream the media. This is true streaming. • Flash provides the classes that handle this interaction for the programmer.

Creating a Player • Demonstration of a Progressive Download Streamer (Hey, Flash Media Server

Creating a Player • Demonstration of a Progressive Download Streamer (Hey, Flash Media Server isn’t cheap!) • Short Introduction to the Flash Environment. • Explanation of Code.