Archive for May, 2010

Just Get Started, Simply – Like Zappos Did

Online shoe-retailer Zappos has been a poster child of sorts within the “Online Video Nerd Herd” community for the past few months. They’ve got one of the fastest growing Internet TV video libraries in the world, and according to articles on like this one on the blog ReelSEO they’re having great success with it. The article states:

“those videos are said to have a sales impact of 6 to 30% which has prompted Zappos to strive for 50,000 videos next year (they have about 8,000 currently) they’ve got 10 studios working full-time cranking out all this content.

While the stat in that quote doesn’t actually mean anything (e.g. what is the definition of “sales impact” — revenue? Something else? 6-30% is a huge range, is it closer to 6% or 30%?), what I do see as a clear success indicator is the investment they’re making in production, in order to ramp up to that volume of content. 50,000 videos is ALOT.

Well, what is all this video content anyway? Shoe demonstrations. Maybe as boring as it gets.

zappos_01.jpg

And they’re presented by average, seemingly random, Zappos employees. Ordinary folks.

Now, for the record, I’ve never bought any article of clothing online, but watching a few of these video demos I definitely get a sense of the shoe in a way that I would never get with any of the other online retail “show me the product “options I’m aware of (if anyone want’s to school me otherwise, let ‘er rip . . . )

While this might be a nice topic for a case study later on, I’m writing this because I want to point out how FREAKING SIMPLE their player implementation is. It’s actually done in the same exact way I described in a post from a few days ago on how to make your own basic Internet TV Video Player and Webpage. Couldn’t be simpler.

Each of these videos takes literally a few minutes to deploy.

Now, I also read in the blog article I linked to at the top of this post, that Zappos is rolling out some more developed, interactive video UI’s as well, so we’ll see how this evolves over time.

The point I want to make, especially for those of you just getting started with this, is JUST GET STARTED AND DO IT, SIMPLY! It really doesn’t take that much to get going. Believe it or not, it’s still the wild west out here in the Internet TV world, and there are still a gazillion ways to skin the proverbial cat. So just go for it, and figure out the finer points as you go along.

UX Case Study: ESPN3 (Part 2)– The Stuff Outside the Video Box

In the previous chapter, I termed ESPN3 “player centric” because the compact design focuses on the Video Player, where it rightly should in this user scenario.

Even with the maximum amount of stuff possible going on, given the options, the focus stays on the player although in the example below where I’ve got 4 different events playing back simultaneoulsly, this does start to fall apart somewhat.

espn3_chap2_01.jpg

What remains impressive is that this works at all. I’ve got both live and on-demand sporting events of an extremely wide-variety playing back simultaneously (European Soccer, NCAA Lacrosse, International Cricket, and Georgia Bass Fishing — as in the U.S. state Georgia, not the country Georgia, although I’ll bet a Bass Fishing show from the country Georgia would be a frikkin’ gas . . . )

espn3_chap2_02.jpg

OK, maybe not.

The Mosaic view does make sense in full-screen mode (as shown above). It all looks pretty good as well, as long as you’re sporting internet connectivity of 1mbps sustained, or better.

THE STUFF OUTSIDE THE PLAYER

Less is always more with a design of this nature. Anything outside the Video Player better be damn important to the end-user, and consistent with brand.

Below-the-player content is what caught my eye first in this design. My brain thought it would give me more choices of sporting events that are live now. And that is the case with the thumbnails at the bottom (and where there aren’t at least 4 events currently live, you get “recommended” featured on-demand content).

espn3_chap2_03.jpg

Above the thumbnails, there is a widget which displays a live feed of sports scores, which at the moment defaults to MLB games (because it’s baseball season, I guess). If you want to get scores from other sports, the UI cascades out nicely to show you the available options, all the way down to that most esoteric of selections, ANY kind of sport from Paraguay.

espn3_chap2_04.jpg

Over to the right side of the player, we get some stuff that’s useful, and some other stuff that’s redundant (or perhaps could be integrated with the scores & thumbnails at the bottom of the UI to save some real-estate).

espn3_chap2_05.jpg

The “Featured Events” panel seems to be 100% redundant to the thumbs at the bottom, showing “Featured Events” (even though not labeled as such). No reason for this to be here, other than to flush out the geometry of the design (and that’s a pretty weak reason IMO).

The Stats would/could be useful, if there were any for this particular event. And then, maybe even we could move this to below the player instead, as a tab within the Scores panel (maybe I’m being hasty here — if there were some useful stats in that panel now, I could be able to make a more informed opinion — let me come back to this one at a later time).

The Chat Panel seems really straighforward, although I’d like a glimpse of how many users are in this particular chat room, and how many chat rooms (with how many users, respectively) are online related to this event. I’ve also not yet tested how it behaves if you’re using Mosaic view (i.e., does it flip to the event that has currently has focus, when you’re viewing 4 events simultaneously? As a random thought, it could be a cool design to have 4 chat pods open simultaneous with the 4 events, to be able to keep 4 chats going at once. A sports geek’s geek-out dream come true!).

UX Case Study: ESPN3 (Part 1)– “Just” The Next ESPN TV Channel

ESPN, “The Worldwide Leader in Sports,” is rightly recognized as the most ubiquitous TV sports network in existence (although I do wish they’d reach back in time and bring Howard Cosell back).

In my road warrior days, there was a 90% chance that no matter what hotel room I found myself in, on any given day, on any continent in the world, there would be at least 1 ESPN channel on the TV. So, it’s a watershed event of sorts — the recent rebrand/relaunch of the ESPN “web video portal” to ESPN3. The branding implication, to the global audience, is this is the next ESPN channel, just like the ESPN and ESPN2 channels you know and love on your TV set. You can expect it to be just as good.

At this point in history, it’s still a bold move for a franchise as grand as ESPN to stake the brand on the notion that the “web video” experience is going to give you a user experience that measures up to what you get on your TV set.

Let’s take a look at what happens when you point your browser at http://espn3.com.

SITE ACCESS

Well, depending on who your ISP is, something may happen, or you might just get a “sorry, charlie” message. I’m writing this from my home office, where I have a DSL connection via AT&T, so I get the landing page, adorned with a “Powered by AT&T” logo in the upper-right hand corner. You need to be connected via one of the “ESPN Participating Internet Service Providers” or else you can’t access the site.

This is a “kinda-sorta” pay-to-view scenario, and it keeps the “value perception of the brand” high. The idea is that you can never watch ESPN for free, and conceptually making it free for everyone could “devalue” the brand in a certain way (i.e. if you expect to get it for free, why would you ever pay for it)?

So, assuming you can get to it, here’s where you wind up:

LANDING PAGE

espn3_landing_pg.jpg

The UX is really geared towards live broadcasts of live sporting events. Clean and simple, with upcoming events clearly laid out, ordered by date & time, directly below the FMA space. You can also view listings of events currently in progress, or an archive of on-demand versions of past events.

The range of content available mirrors that on ESPN’s traditional channels — a mixed bag of top-tier league events like MLB and NBA games, global tournaments like the French Open tennis, as well as oddball items like Bass Fishing and Australian Rules Football (if you’ve never seen it, you should watch at least once, and see if you can figure out what in the heck is going on because I sure can’t).

Clicking on the listing of an event currently in progress, or the “Watch Now” button, opens the player in a separate window. This is where the actual content viewing happens, and where the rest of the UX ultimately lives (the Landing Page was really just an entry point — once you’ve got the player open you never need to go backwards). So, even though they did a good job of making the “Watch Now” button stand out from a color-palette perspective, without making it obnoxious or pulling it away from nav-bar, I’m wondering if there’s something I’m missing here in that it makes no sense to me why they wouldn’t take you to the player from the get-go. Do we really need the Landing Page at all?

VIDEO PLAYER

espn3.jpg

The pop-up page that contains the player is a very “player-centric” design, in that all of the non-player content wraps around the player, and makes the whole thing feel centered and integrated around the video. It also gives me a sense that there’s lots of video content to choose from and, other familiar ESPN features like up-to-the minute scores & stats lend it a familiar, “TV-like, on-brand” feel, although a chat pod in the lower-right corner rolls in a contemporary feature of Internet TV, the “virtual shared viewing experience.” My first impression is they’ve retained the “goodness” of the broadcast version of ESPN, while nudging gently into some internet-specific functionality.

I’ll get more in-depth into the content around the player in a later post. For now, I want to focus on the Video Player itself. One thing that keeps this “feeling like ESPN” is the way they Pillarbox the 4:3 video appearing in this example with the ESPN3 logo (exactly how they Pillarbox on the ESPN broadcast channels).

espn_player_01.jpg

There is also a complete absence of player Chrome around the top and sides, and a very simple timeline below, which obscures the controls in it’s default state. It also gives us the name of the event being watched, which is useful given the amount of content available at any given time.

When you mouse-over the video, the timeline appears, as well as controls to adjust Video Quality and Volume.

espn_player_02.jpg

Much like many contemporary Internet TV channels, ESPN3 offers Dynamic Bitrate Switching (termed on this site as “Auto Adjust”) which serves up the best-quality bitrate you can handle at any given time. This is the default setting (which is exactly what it should be for the average Internet TV watcher), but you can set the bitrate manually, should you decide to “live dangerously.”

My only “suggestment for improvement” is how the CTI (current-time-indicator, the little thingy on the timeline that you can drag left-or-right to move forward or backward in time) can only be dragged. You can’t click on the timeline where you want it to go, and have it jump there (a feature which is very common these days, and which many users expect).

The three buttons on the lower-right let you toggle between the viewing states: Standard, Fullscreen, and Mosaic.

espn_player_03.jpg

The Mosaic view lets you watch up to 4 events at once, but unless you have a really fast connection the viewing experience can still be dicey.

The Mosaic view, IMO, caters solely to sports junkies, sports gamblers, and fantasy-league participants, who really want/need to be able to track multiple sporting events simultaneously. For the casual viewer, it really serves no useful purpose. That being said, a good portion of ESPN’s base are sports junkies, sports gamblers, and fantasy-league participants. So this is a key feature for this Internet TV channel (as well as most Internet TV channels that cater to sports fans) and definitely starts to get you into the zone of “this is something I probably can’t do on my TV set today.”

The way you get content into this Mosaic view is either by drag/drop or going to the interactive calendar which also drives the PIP (picture-in-picture) feature. Since I believe this one is a bit more useful to the average viewer, let’s take a look at how it works (keeping in mind getting content into the Mosaic view pretty much works the same way).

In the mouse-over state of the player, an “Add PIP” button appears in the upper-right corner. Clicking on it brings up a simple dialog.

espn_pip1.jpg

Clicking “Choose An Event” opens the interactive calendar, which appears as an overlay on top of the video player. It also shows you the video you’re currently watching on the right side.

espn_pip2.jpg

This appears to me to be a crack at something similar to an interactive programming guide on a Cable or Satelite subscription. The only problem with it’s current implementation is that is just appears onscreen abruptly, and it took me a moment to understand what I was looking at (in particular, the video itself didn’t feel like a continuous experience). What I’d like to see would be for the interactive calendar to appear via a transition, which would push the video off to the right and have the listings fade up on the left. Would really make the whole thing feel connected — right now it feels a little disjointed.

This one complaint aside, at this point it’s easy to locate a “Replay” on-demand clip, or any live event currently underway (at the time of this writing, early on a Monday morning, there were no live events underway, so I loaded in a replay of one of the French Open matches).

espn_pip3.jpg

The bad news is that the PIP window is simply way too small to see what the heck is happening, and there’s no way to resize it (although you can position it wherever you want). I can’t really see the usefulness, unless you go into fullscreen mode (but the ESPN3 branding on the Pillarbox goes away, which is probably good if you’re the end-user but not-so-good if you’re ESPN).

espn_pip4.jpg

I’m watching this on my laptop which has a 17-inch screen, and at this point I can actually see the tennis ball in the PIP which is pretty darn good.

Part 2 to come shortly . . .

Internet TV Technical Basics: Video Compression

Have you ever heard that Texas expression that goes something like this:

“That”s like trying to stuff 10 pounds of manure into a 5 pound bag”

Let’s consider that expression as an analogy to what one needs to do in order to get a video file delivered from some server in god-knows-where over the public Internet to whatever device you choose to view it on.

So, how exactly DOES one stuff 10lbs of crap into a 5lb bag?

Well, if there are some gaps of air in it, you can compress it somewhat and get more in the bag, right? No, wait, we’re talking about air here, it doesn’t weigh anything. Scratch that.

Well, you physics majors out there realize there’s no way you can get that 10lbs into the 5lb bag. The only thing you can do is leave some of it behind. So what can you leave behind, and still retain the ESSENCE AND INTEGRITY of the dung (OK, this analogy has gone way too far and ends here).

When you watch Internet TV, the pipe that connects the your computer to the server where the video is stored is in a state of constant fluctuation. How much data can get through that pipe changes from moment to moment.

Think of the video as your “10 pounds of manure” and the pipe can only get 5 pounds through at this instant, but maybe in a few seconds it can only take 3, and then a few seconds later it can handle 7. What needs to happen in order for that video to get through that pipe, is for it to get Compressed, which means getting rid of some of the data that makes up the digital video file, while maintaining its ESSENCE AND INTEGRITY.

In video production, we tend to work with very large video files which are either uncompressed (which maintains 100% integrity, meaning the files contain all of the visual information that the camera captured when the video was recorded), or are compressed to an extent that you can’t see any difference from the uncompressed file (this is defined as Lossless Compression).

You simply can’t deliver these huge files we use in production over the public Internet. Nobody in the universe has a connection fast enough. So we need to Compress the video to a Lossy Compression format, which will degrade the integrity of the video to some extent.

Every single video standard that works for Internet TV involves Lossy Compression.

As time goes on, and technical innovation continues, new and better Compression algorithms become available that let you get better quality at a lower Bitrate.

So what’s a Bitrate?

Basically, your internet connection is like that pipe I was talking about earlier — you can only get so much data through at any given time. So let’s say your “average throughput” is 700kbps (kilobits per second). If the video you are watching was Compressed to a Bitrate of 700kbps, you’d have a very good viewing experience, unless your connection started to drop lower. Then maybe the video would pause or stutter.

Every video you watch on Internet TV was Compressed to a specific Bitrate. On Adobe TV, our videos are generally Compressed to about 600kbps.

Many websites offer a choice of several different Bitrates, so if you have a faster Internet connection, you can view higher quality video. Take this one below as an example:

Once you’ve started playing the video, the button that says “360p” contains selections for 3 different Bitrate versions of the video. Each version is encoded to a different Bitrate, but many sites obscure this by defining the versions by their Frame Sizes rather than their Bitrates (as this tends to be a closely-guarded secret for competitive resaons).

If you go to the highest available bitrate, defined as 720p, the video will look much, much, better and the audio will sound better as well (audio is also Compressed, along with the Video, for delivery for Internet TV). If I had to venture a guess, I’d say 360p is a bitrate of 300kbps, 460p is 600kbps, and 720p is 1mbps (megabit, or 1000 kilobits, per second). But that’s only a guess.

Some Internet TV channels, like MLB.TV and HULU, offer Dynamic Bitrate Switching, which means the Video Player will deliver the highest Bitrate that your Internet connetion can handle, at any given moment, and vary the Bitrate that you get depending on how your connection speed expands and contracts.

To see just how much better Compression algorithms have gotten over the years, let’s look at a video that was uploaded to YouTube 3 years ago (I selected the video randomly, I just wanted it to be a few years old to illustrate my point):

Because of the Compression algorithms available at that time, and also because the video had to be Compressed to a much lower Bitrate back then (as the average user’s Internet connection was much slower then than it is today) this looks pretty rough.

Now here’s a random example from Vimeo, who generally uses a higher Bitrate encoding profile, that was posted and encoded today (go fullscreen to see it in all it’s splendor):

Amsterdam Osdorp from The QBF on Vimeo.

This isn’t even close to the best quality Internet TV has to offer today, but man isn’t that a huge difference?

More on this subject to come soon, this is an incredibly deep topic….

OSMF – The Promise of Prefab Player Dev

SKOL! Here’s to a group of my very expert and accomplished Adobe colleagues who launched the 1.0 of the Open Source Media Framework (OSMF) today.

For an explanation by me of what this thing is, please watch the embedded video below of me yakkin’ from Beet.TV (this is the15-pounds-heavier version of me back in November ’09, during the rainy SF winter when my main form of exercise — biking to work — does not happen).

Basically, OSMF makes it very easy for you to build complex Video Players for your Website. All the hard work is already done for you. There are already projects like OSMF App Studio which offer ways to create your own players with “drag and drop ease.”

If you are a web designer or developer whose customers want/need Online Video, this could be very meaningful to you.

How To Make Your Own Basic Internet TV Video Player & Webpage

As a follow-on to my previous post, here’s how you can create your own integrated Video Player and Webpage in a few easy steps using Dreamweaver. This works with just about any relatively recent version, but the screencaps below were taken in Dreamweaver CS5.

First, you need a video file encoded to a Flash-compatible format (FLV or F4V) which can be output from just about any Adobe authoring tool, including Premiere Pro and After Effects, or by taking an existing video file and encoding it with the Adobe Media Encoder.

Next, launch Dreamweaver and create a new HTML document. Type any old text you want, just to have some content on your page, and then select Insert > Media > FLV… (important note: the actual menu verbage may vary slightly, depending on which version of DW you’re using, but with a little poking around you’ll find it).

dw_insert_media.jpg

And then you get the dialog. The first menu is the only one that needs explanation, and that explanation warrants a separate post which will come shortly. For now, all you need to know is keep it set to it’s default, which is Progressive Download.

Insert_FLV.jpg

The rest of the dialog is pretty self-explanatory. Browse to your FLV video file, select a player Skin (there are a few stock skins but you can also create your own using the Flash Professional authoring tool), set the size of the player, etc. Then, you’ve got a Webpage in DW with a big grey box on it, representing the placement of your Video Player.

DW_player_inserted.jpg

And lastly, to view your new creation, select File > Preview in Browser.

look_at_my_video.jpg

So at this point, in order to make this live on the Internet, you would copy the HTML file, the FLV file, and the 2 SWF files that were created in the same folder as your HTML file when you inserted the FLV file onto the Webpage in the steps above. The first file will be called FLVPlayer_Progressive.swf, and (name of the skin you selected).swf. These 2 SWF files are the actual player component and the skinning of the player, respectively. Dreamweaver created this files for you when you inserted the video. The key is to remember to upload them when you publish the video, the Video Player, and the Webpage to your website.

Video Player vs Webpage

Keeping with the tradition of this blog (to keep the info as digestible for as wide a range of skill levels as possible), I want to explain some basic Internet TV concepts, so if you’re new to this the posts you’ll be reading in the future make more sense.

When you’re watching video in a web browser, there are 2 main components of that experience. The “Video Player” and the “Webpage”. They are generally developed as separate components that get integrated once they are developed. Let’s look at YouTube as an example:

player_vs_webpage.jpg

I dimmed out everything that isn’t the player.

The player is the component that actually plays back the video, and contains the controls that let you navigate and manipulate the video (i.e. move forward and backwards in time, enter Fullscreen mode, Closed Captioning on, etc) . In the case of most of the websites you watch video on, it is a player built on the Adobe Flash Platform, and is playing video encoded to one of the Flash video specifications.

Everything else is contained within the Webpage. The Webpage is generally build using a mix of different technologies including HTML and Javascripit.

Ultimately, the video player is “embedded” within the webpage, which is what integrates the 2 together. This is also what happens when you take the “embed” code from a video player and put it on your own webpage (as I have done with one of the films I’ve produced for Adobe TV, directly below this paragraph) or when you “Share” a video on a social networking site like Facebook.

Other things integrated within the Player, behind the scenes, are snippets of code which report usage back to a metrics & reporting system (in the case of Adobe TV, every time you watch a video, including if you just played that video above this sentence, it sends information that the video was watched, and also reports how much of it you watched, to our reporting system Omniture Site Catalyst). If there is ad-insertion, there is also code that calls out to the ad server to show you advertisements at specified times (generally “pre-roll”, i.e. before the video you actually came to watch plays). These are just a few examples.

Why Hulu’s New Player is the One To Beat

Hulu‘s player, IMO, has always been one of the best models of simplicity, functionality, and aesthetic harmony (defined in my book as “not getting in the way of the video”). This remains the case with the new 3.0 player which recently went live.

In it’s default “play” state it’s 100% clean, with the exception of the very unobtrusive copyright notice and “more options” tab.

hulu_v3_01d_520.jpg

On the rollover state (i.e. when your curser moves over the video), a standard set of player controls and timeline appear overlaid on the video, and a row of options appears flagged off the upper-right-hand corner. I really like the arrangement of these particular player controls, as they tend to get visually detached from the player on other sites.

hulu_v3_02b.jpg

In the above screengrab, I had clicked the “Video Settings” icon, which brought up a dialog allowing me to save a default preference for any of the 3 available bitrates, or for dynamic bitrate switching (which they define as “Auto-select the best quality for my bandwidth”). You need to be logged in to save as a default, but since certain Hulu content is behind login anyway (for “mature” themed content, e.g.) this won’t be a barrier for most users as we tend to be logged in anyway.

This new capability to save a default resolution does fix one of the more annoying aspects of the previous player, which defaulted to delivering the 360p stream, and required that you manually click on the 480p button at the beginning of the video, and you could only do this after all pre-rolls were completed. When you watch as much content on Hulu as I do, this is a very, very nice improvement to the UX.

Another welcome improvement is dynamic thumbnails on the timeline, which they’re calling “Seek Preview”:

hulu_v3_03b.jpg

It is really, really fluid, As you move your curser left and right over the timeline, it updates the timecode as well as the thumbnail. I’m fond of Netflix On Demand‘s timeline scrub feature, as it shows you 5 frames as you scrub through, which can definitely help you locate the scene you’re looking for much quicker, and I think Netflix may still have Hulu beat on this one (although Hulu’s implementation is really darn responsive).

Finally, the all-important Fullscreen state has 2 new features I really like. The first is the clock showing the time-of-day, positioned in the upper-right corner which is exactly where the OS clock appears on my Mac’s desktop. This means I don’t need to leave Fullscreen to check the time. Nice.

hulu_v3_04b.jpg

Second, in the upper-center you can see the state of the buffer. Unless I’m semi-passively watching a video (e.g. I’ve got a ballgame on as I’m getting some work done) I like to control the bitrate I’m getting, and make the necessary pauses to buffer if necessary to sustain the quality I want.

There are some other great features in the new player, but these are the ones that stand out to me, in the way I use Hulu.