Published by Marco on 1. Nov 2013 15:23:38
------------------------------------------------------------------------

This article originally appeared on "earthli News"
 and has been cross-posted
here.

--------------------------------------------------------------------------------


The most difficult technical problems to solve are the ones that you don't
notice. The workflow and tools to which you've become accustomed are terrible,
but they're so ingrained that you might actually find yourself unthinkingly
defending them because that's just how it has to be.

Below I take a shot at designing a better user experience for a common feature:
rewinding or fast-forwarding a video recorded on a DVR.

[Why is your DVR's fast-forwarding feature stuck in the past?]

Fast-forwarding and rewinding digital movies is one of those things.

Many people have DVRs now -- provided, often enough, by the cable company itself
-- but they often function as if customers were still juggling tapes instead of
switching between files on a hard drive. While there is no technical hurdle to
making this process better, I acknowledge that there are probably very important
albeit tediously prosaic advertising reasons for keeping fast-forwarding not
just primitive, but almost deliberately broken.

Despite the strong likelihood that this feature will not be improved for the
reasons stated above (i.e. that the exorbitant monthly fee that you pay for your
content will continue to be supplemented by advertising revenue generated by
your captive eyeballs), it would still be fun to imagine how we could make this
feature better.

[Use cases]

The most obvious use case for fast-forwarding is to skip commercials in recorded
content: that's just reality. Though the cable companies and networks would
dearly love for everyone to take their medicine and watch all of their
advertisements, users would dearly love to just watch their content without the
ads. That is often the reason that they recorded the content in the first place.

Another use case  is to scrub forward in longer sports events, like cycling or
the Olympics. The user generally doesn't want to watch six hours; instead, the
user would like to skip forward 2.5 hours, watch 15 minutes, skip another hour,
watch 30 minutes, skip another hour and watch the rest, all the while skipping
commercials in between. Often the user doesn't even know how far they want to
skip; they need to see the content at various intervals in order to see where to
stop. This is currently achieved by just scrubbing through all the content
sequentially.

This is all not only a tedious amount of work but also takes much longer than
necessary: even at the top speed, the fast-forward feature takes long minutes to
skip two hours of content. This is ridiculous, especially when most of us have
seen it work at least marginally better on a computer, where one can skip large
chunks of content and reliably jump to a specific position in the recording. The
system described below could improve the experience for computer-based media
players as well. 

[What's the problem?]

Fast-forwarding is a pain because, while you'd like to jump forward as quickly
as possible,  you have to be fast enough to stop it before it's gone too far.
This is old-school technology from the days of the VCR when there was only one
read-head per device. Now there's a digital file that the machine can easily
read and render thumbnails from anywhere in the data stream.

My media box from UPC Cablecom offers the standard controls for scrubbing: play,
pause, fast-forward, rewind. When you press rewind or fast-forward, it moves
between five speeds, skipping forward or backward faster with each level. When
you've got it on 5 of 5, you skip commercials or content very quickly, but
you're also extremely likely to skip over content you wanted to watch.

The standard pattern is to fly forward, slam on the brakes, then backtrack
slowly, overshoot again -- but not by as much -- and then finally position the
read-head about where you want it, watching the final 20 seconds of commercials
or station identification that you couldn't avoid until you finally get to the
content you were looking for.

There has to be a better way of doing this.

[Making it better]

The idea of five speeds is fine, but we should be able to take the twitch-gamer
component out of the experience. And this is coming from someone who used to be
a pretty dedicated gamer; I can't imagine what this system feels like to someone
unaccustomed to technology. They probably just put it on the slow speed -- or
don't bother fast-forwarding at all.

What about a solution that works like this: instead of changing speed
immediately, pressing rewind or fast-forward pauses the stream and switches to a
scrubbing mode. The scrubbing mode is displayed as a screen of tiles -- say 5x5
-- each tile representing a screenshot/thumbnail from the stream that you're
watching.

The thumbnails are chosen in the following manner. If you pressed fast-forward,
the thumbnail for your current position is shown in the upper left-hand corner.
Subsequent tiles are chosen at 5-second intervals going forward in the stream.
Pressing the fast-forward again increases the level -- as before -- but, instead
of speeding through the stream, it simply chooses new thumbnails, this time at
10-second intervals. Press again to switch to 30-second, then 1-minute, then
5-minute intervals. At the top "speed" the bottom right-hand corner shows a
thumbnail 24 x 5 minutes forward in the stream.

Rewind has the same behavior, except that the current position is shown in the
bottom right-hand corner and thumbnails proceed from right-to-left,
bottom-to-top to show the user data in the stream before that position.

Once the user is on this screen, he or she can use the cursor to select the
desired thumbnail and refocus the screen on that one by clicking OK. In this
way, the user can quickly and reliably use the fast-forward or rewind buttons to
switch the granularity to "home in" in on a particular scene. All without any
stress, missteps or a lot of senseless back-and-forth scrubbing. And all without
having to watch hardly anything -- a few seconds at most -- that the user
doesn't want to watch.

When the right scene is selected (to within 5 seconds), the user presses play or
pause to continue watching from the newly selected position.

Players like Roku have a "jump back ten seconds" feature that's quite useful,
but the system described above makes that sound utterly primitive and limiting.

[Going beyond five intervals]

It is no longer necessary to have only 5 fixed intervals either. Perhaps the
default interval (user-configurable) is 2 seconds, but that's only the center of
a scale with 10 steps, so the user can drop down to 1-second or 1/2-second
increments as well.

[Positioning the current scene in scrubber mode]

The system described above moves the default location of the current scene,
depending on whether the user pressed rewind (bottom-right corner) or fast
forward (top-left corner). Another approach would be to ignore which button was
pressed and to always show the current scene in the center of the grid, with
thumbnails showing history as well as future in the recording. Further presses
of rewind and fast forward increase or decrease the amount of time represented
by each thumbnail.

[Rendering thumbnails]

If the software takes time to render the thumbnails, it can do it
asynchronously, rendering thumbnails to screen as they become available. Showing
the time under the thumbnail would be massively helpful even without a
thumbnail. The user could easily jump ahead 4 minutes without any adrenalin at
all.

This should be a huge problem, though. Whenever the user opens a recording, the
software can proactively cache thumbnails based on expected usage or default
settings.