Channels ▼
RSS

Streaming Media Steps Up to the Plate (Web Techniques, Feb 2002)


User Experience

Choti emphasizes that user profiling was a major factor in MLBAM's development approach. When deciding how best to serve video to customers, Choti and his team considered the fact that most of the MLB.com target audience does not have broadband-enabled Internet connections.

According to a 2001 study by IDC, an increasing number of households are investing in faster modems and high-speed Internet connections, with 51.2 percent of online users reporting that their modems achieve speeds of 56Kbps or faster. 18.8 percent of online households subscribe to a high-speed Internet access service, compared with 11.7 percent a year ago.

But a 7.1 percent broadband growth rate is simply not fast enough to ignore the lower speed connections. With this in mind, MLBAM configured most of MLB.com's video so that it could be viewed at a low bit rate over a dial-up connection. Serving streaming media for a baseline connection speed of 56Kbps, MLBAM uses fairly heavy compression on its video. The site uses multiple compression rates depending on the product. In the case of Custom Cuts, MLBAM encodes two streams—one designed for dialup (56Kbps) users, and one for broadband (300Kbps) users.

"The quality of the video is not compromised when levied against the people that you would shut out if you didn't compress it heavily," explains Choti. "You have to say that most users today have 56Kbps modems or higher, so let's baseline at 56Kbps and see if we can push it out. Those products that we can't compress become broadband projects, and we just let the fans know that we understand they don't have broadband, but there's no other way to deliver the product." The Baseball's Best Games product, for example, is only available in a 300Kbps broadband version.

Custom Development

When it came to adding e-commerce functionality to the site, MLBAM decided against using a third party provider, opting instead for its own modular subscription architecture. MLBAM developed its authentication scheme to protect the content, utilizing user account level securityto control access to keypages and servlets for Custom Cuts.

Justin Shaffer is the lead developer on Custom Cuts. He says most of the technology behind the e-commerce on MLB.com adheres to open standards, and is based on a J2EE-compliant application server.

"Users log in to the servers. Behind that we have lightweight directory access protocol, and Oracle." He adds, "The subscription process is straightforward. We track users based on sessions to verify whether someone is logged in. There's some built-in handling for that within iPlanet, and all of our development is [in the form of] JSP pages."

For the most part, media products on the site have been implemented through MLBAM's partnership with RealNetworks, and the help of the Real Broadcast Network. However, due to the video source (Virage), the need for timely delivery to the Web, and the need for stats synchronization, Custom Cuts was implemented from a significantly more complex model.

MLBAM had four and sometimes five developers working non-stop on Custom Cuts for almost three months. Additional staff members helped with the architecture and infrastructure planning. Organizing the logistics for video acquisition, which takes place via satellite, took several months as well. All told, from the initial architectural discussions to the launch on MLB.com, Custom Cuts was in development for about six months.

Choti's don't-reinvent-the-wheel approach to development came into play when the staff decided to drive Custom Cuts off the data architecture of MLB.com's audio product, Gameday. Gameday streams live audio broadcasts of all games throughout the season. The Gameday production process connects the stringers—laptop-equipped employees at the games who enter into a custom application information about each play as it occurs—with MLB.com's stats database.

Beyond this data architecture, however, Custom Cuts proved to be a completely different animal from Gameday. CustomCuts significantly changed the way that MLB.com interprets live event data from the ballparks. Other professional sports, such as hockey, basketball, and football, have a clock running throughout the game. This creates a somewhat official time against which events can be synchronized. In the case of baseball, there's no clock running, which makes the task of producing automated video with synchronized pitches much more complex. MLBAM made significant changes to thedata model for the incoming stringer data to account for time stamps.

MLBAM knew also that it had to obtain the realtime information to work with Virage. The Virage indexing process is a multipass system that uses MLB.com's live event data feed, Virage's proprietary video scrubbing technology, and final scrubbing and sign-off by video editors. On the front end, MLBAM's custom-built technology handles the user experience from subscription, through the search, to the construction of the Custom Cuts reel, to the viewing of the user's video selection.

The usual Real Broadcast Network model uses static SMIL documents to synchronize sound, video, and other data. But in the case of Custom Cuts, the team needed mechanisms to distribute real time event data to Virage—a complicated proposition. The team built a Web-based XML interface on the Virage side to retrieve the clip metadata, and relied on dynamic SQL generation on the MLB.com side to accommodate the multitude of search possibilities. Finally, team members generated dynamic SMIL documents based on users' Custom Cuts reel selections.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video