views:

907

answers:

4

Hi guys,

I'm building a flash site (as3) with large videos that act as transitions from section to section. The videos don't scale; in order to accommodate users with large monitors, we're planning on playing back HD video and only showing users the center of the frame (depending on their screen size). That is, there will be a central area of roughly 1024x768 that we'll assume that all users will be able to view and where most of the information will reside, but we'll want users with big screens to be able to view all of the information and the entire scene around it as well.

My question is this: does it make more sense from a performance perspective to encode the video as hi-def FLV and play it back without modification, or to encode it at a reasonable resolution and then scale it to hi-def (with smoothing) on the fly? Loading time is not an issue as all clips will only be a few seconds long and will preload completely prior to playback, so the bottleneck will likely be on the playback side of things.

Many thanks!

A: 

I think it depends what your clients want - is their target audience the type of people to have more modern computers? Then go for HD. If it's important to the client for the site to reach the broadest market possible, then go for scaling up, but with the understanding that you'll lose quality. I'd also suggest implementing bandwidth detection: http://www.adobe.com/livedocs/flashmediaserver/3.0/hpdocs/help.html?content=00000072.html, although I guess that's not on the playback side of things.

quoo
Yeah...I'm definitely more concerned about quality, but if clients can't handle playing back HD (dropped frames, skipping, etc), quality will suffer. Ultimately the question here is performance-related: is scaling and smoothing standard-def less processor-intensive than HD playback?
justinbach
A: 

From what I've experienced scaling a smaller sized video with smoothing (so it'll still keep some quality) is way more heavy on the cpu than just playing back a HD quality movie.

Also, if i remember correctly, i think scaling something 50% > 100% or 25% > 100% is "easier" for it than scaling something 52% -> 100% (i.e. if it's divided evenly by 2 or 4 etc.) but playing back the original size is still less processing than scaling at all (and looks better too).

Robert Sköld
A: 

Why don't you load different videos for different screen sizes?

Setup your flash movie to stretch to the window dimensions (using stage.scaleMode = StageScaleMode.NO_SCALE) then get the stage size using stage.stageWidth and stage.stageHeight.

facildelembrar
A: 

Ultimately, we needed to play back video at 1680 x 1050, which is too hi-res for most of our audience's computers to play back natively. What we ended up doing is encoding the video in HD using On2's VP6-S codec's 720p presets and scaling to the desired resolution. The quality is more than acceptable and playback is decent on most computers, even when the whole video is visible (for users with smaller screens, the video is centered, not scaled to their screen size, so they just see a smaller portion of the video).

Anyway, ours is a fairly unusual set of circumstances, but hopefully this information will be helpful to someone else down the road.

justinbach