Archive for the ‘video solutions’ Category

Is H.264 the right choice for online video?

with 2 comments

I wanted to add some thoughts to Chris’s post about Flash and HTML5. However I should preface this post by saying that HTML5 supporting video is really cool, both technically and because HTML5 is an open standard that anyone can implement for free. As we all know, for the last several years, Flash has been the de facto choice for online video delivery. Flash support on different platforms has been pretty good, but end users still don’t have total flexibility depending on their OS. Until recently, Flash on Linux has been about a version behind the release for Windows or OS X. Even now, Adobe only releases a player for x86, and the x86_64 version is unsupported beta software.

Everyone seems to be touting HTML5 video as the “open” alternative to the proprietary Flash plugin required for .flv playback in the browser. But how open is H.264, the codec that powers HTML5 video, and the current pick for encoding video for online delivery? Using H.264 as the codec behind HTML5 video sours things a bit for me. H.264 is encumbered by software patents; to develop or distribute a player or encoder for H.264 you might have to pay a licensing fee to MPEG-LA. Even though MPEG LA announced last week (PDF) that H.264 will remain fee-less for free internet video through 2016, this is not the same as being free or open. MPEG-LA can still go after people that produce the software to encode or decode H.264. And MPEG-LA is not just one organization, it’s a collection of patent holders that have their own agendas.

All this is a bit of a slap in the face to the open standards that power the web. Imagine if you had to pay a half million dollars to create or display JPEGs, GIFs, or HTML… The only people that would be able to afford to make software for the web would be huge companies. But what are our alternatives? Beyond Ogg Theora and Matroska, the pickings are slim. These codecs are open and free, but not necessarily better than H.264. Plus it would be next to impossible to compete with the marketing machine of Apple behind H.264.

Open and free standards have been what has made the Internet successful since its inception. I think it’s important that users understand this so that the Internet of the future cannot be controlled by corporations with enough cash to cover licensing fees.

Share this: Share this page via Digg this Share this page via Facebook Share this page via Twitter Share this with Linked in

Written by David Rocamora

February 15th, 2010 at 10:41 am

Love 'em or hate 'em, plugins are here to stay

with 3 comments

There’s been much discussion and debate recently surrounding the iPad’s lack of Flash, which in turn has fueled discussion about the future of online video delivery. This week’s preview release of the HTML5-powered SublimeVideo player is seen by some as the beginning of the end for online video delivery in Flash player. As Senior Multimedia Development Consultant at Control Group, I thought I’d share a few thoughts on the topic.

To me, this isn’t so much a debate about Flash/ActionScript 3 versus HTML5, but rather another win for HTML + Flash/AS3! It’s all about creativity as a developer. Bad coding leads to poor applications, proper coding leads to a proper experience. ;) It is a common pitfall that most people think “HTML or Flash”. I see this as more power for the mixing of technologies, raising the cap on what can and can’t be done in a web browser.

Adobe’s technologies provide clear benefits to the end user, but also (and perhaps more importantly) the developer. As a developer, I can utilize the unique capabilities of the .flv format to protect content in some fashion or for metadata injection, all of which can be done on the fly and server-side, if implemented using Flash Media Server (FMS).  I’m also really excited about Flash Player 10.1 – it brings the ability to scale all the way from mobile to HD flavors, and will be available on smartphones and other Internet-connected mobile devices.

This is about more than just video delivery, it is the platform combined with the tools, and Adobe has been making tremendous strides in going open-source with them. Adobe is providing a cohesive environment that is deeply integrated with some of the best tools out there for content creation. HTML5 is just starting out, and the gap between the tools and technology is too immense to make it the competition. Flash has fantastic penetration and Adobe can rapidly evolve the technology. Remember, HTML5 still is not a standard – in fact we are looking at sometime in 2012 before we’ll see a final recommendation. These are cohesive technologies and they are here to stay for a very long time, which means plugins will be around for a long time too. Simply put,  plugin implementations have the potential to penetrate faster, and as history has shown they often do. Plugins forge the path, and the Web comes right behind them to standardize those paths.

If you want to better understand what the big picture is regarding Adobe and its technologies, I recommend reading a little bit about:

OpenScreenProject
Catalyst
SVG and FXG
Flex Data Services
RTMFP (Real Time Media Flow Protocol)
Binary Sockets

Share this: Share this page via Digg this Share this page via Facebook Share this page via Twitter Share this with Linked in

Written by Chris Ross

February 3rd, 2010 at 10:17 am

Testing Storage Performance for Video with lmdd

with 10 comments

One of the unique things about how Control Group works is that our focus is much more involved than simply putting in a solution for a client and then moving on. We work with our clients to determine how they work, so we can design IT solutions that really fit their needs. Since we have partnerships with a variety of vendors, we work with our clients to arrive at the best solutions for their business. This means we do quite a bit of research and planning before we begin a project — and then a great deal of testing during and after we install new hardware or software.

I do some work on implementing storage systems for our clients, and we’ve found that different applications have different storage requirements. For example a video post production facility — like the facility at WWE — generally needs lots of disk space that is very good at reading and writing large files at high speeds. The storage here needs to provide good streaming throughput, because high quality video files generally have high bit rates, and are being stored or played back from the disk in real-time for ingesting, editing, or playout. If the storage system is not fast enough to read or write the file in real-time, frames will be dropped. This can cause unsatisfactory media files, programs to crash, or audio and video to become out of sync.

A Sun Fire X4150 I recently configured. That's some serious storage.

10,000 RPM SAS disks. That's some serious storage.

Suboptimal read/write performance can become a huge problem. When we put in a new system this is something we need to test. I usually do the test with a tool called lmdd.

lmdd comes from the lmbench tools which are provided by Bitmover for benchmarking systems. lmdd is great for testing streaming bandwidth. In most of our engagements with video, we install a Stornext or Xsan filesystem so we’ll run our tests against this. lmdd will probably work on any filesystem that you can mount on your Mac or Linux computer (Leave a comment if you need a version for Mac OS X, I have one compiled).  lmdd lets us verify exactly what the maximum number of megabytes per second we can push through the storage and point us to where we need to make changes to the hardware or software configuration. I use lmdd like this :

lmdd of=/path/to/test_file count=1g

lmdd if=/path/to/test_file

The first tests write performance and the second tests read performance. More information about the syntax is available in the manual page for lmdd. The results of the command from a server I was testing looked like this:

2147.4755 MB in 6.8003 secs, 315.7914 MB/sec

lmdd is great because it’s easy to read. This result shows I could write to the filesystem at 315 megabytes per second. That’s really fast! This is from a test with a server with a lot of RAM and a special filesystem that took advantage of that cache. When I run it on my Macbook, I get a result like this:

18342.6171 MB in 376.7685 secs, 48.6841 MB/sec

So the next time you’re interested in how your storage is performing give lmdd a shot and let me know how it goes. If you’re looking for more information about storage performance testing then stay tuned; I’ll be posting about testing storage with tools that benchmark small reads and writes next.

Share this: Share this page via Digg this Share this page via Facebook Share this page via Twitter Share this with Linked in

Written by David Rocamora

June 8th, 2009 at 9:00 am

Advantages of Storage Networking

with 4 comments

I was recently having a conversation with a friend and we both laughed when we thought back to the first five hundred megabyte hard drives that we had owned. Back then, the half-gigabyte drive was ridiculously expensive and physically huge. We both thought that it would be impossible to fill these drives up.

This of course was not the case. Now you’re lucky if an application can be installed in less than 500 MB, and as hard disk sizes grow, we find new ways to fill them up with applications, documents, and media. Digital files have become the most valued assets for most of our customers, so the organization, storage, and archiving of data is a serious concern.

I find that the best way to evaluate storage technologies solutions for our clients is to step back and take a look at the problems the client is looking to solve and the priorities dictated by their business needs. Usually, our clients’ storage needs require a combination of performance, reliability, disaster recovery, scalability, and manageability. Fortunately technology has stepped up to the challenge to handle the increased need for larger, faster, and more reliable storage.

Storage networking is a general term that encompasses many different technologies that provide excellent solutions to modern storage problems. A storage area network (SAN) is an architecture in which storage devices are connected in a high-speed, dedicated network and are presented to computers that are part of the same network. Using storage networking, we can accommodate our clients’ performance and reliability needs: by abstracting groups of hard drives as logical units (LUNs) we can stripe data across disks to increase speed and add redundancy by storing parity on the disks. This configuration will allow us to rebuild the LUN when a disk fails, without causing downtime or data loss.

Example SAN Configuration for Final Cut Pro Editing

Example SAN Configuration for Final Cut Pro Editing

A storage network abstracts the underlying hardware that provides storage services, providing some great advantages for disaster recovery. When we add tape libraries to a SAN we can make backups quickly and efficiently without slowing down the network or computers on it. We can also connect a SAN to another SAN that’s in a different building or even a different state. This allows us to easily replicate data to a secondary location so our clients can be up and running quickly if there is some kind of catastrophe in the data center.

Even the largest SANs will eventually get filled up with data. What happens when it’s time to increase capacity? With traditional storage, the system is shut down, new equipment is installed, and the data is migrated. This typically involves downtime and runs the risk of data loss if something goes wrong. With a SAN expansion is no problem. Since the storage services are abstracted from the storage hardware it’s easy to add capacity or replace older equipment, in many cases involving no downtime.

A SAN also provides centralized management for storage: administrators can look in one place to see the status of all storage in a data center.  This allows businesses to evaluate storage health and utilization, which can prevent problems and help plan for future growth.

As data becomes a more and more important part of business strategy, it becomes critical for businesses to have larger, faster, and more reliable storage services to keep things operating smoothly. Storage networking is a core component of these strategies. I’ll continue posting about our thoughts and experiences with SAN solutions, and try to shed some light on the storage ecosystem as new technologies emerge.

Share this: Share this page via Digg this Share this page via Facebook Share this page via Twitter Share this with Linked in

Written by David Rocamora

April 15th, 2009 at 5:36 pm

Exporting Assets from Final Cut Server

with 5 comments

Last week, I wrote about leveraging Final Cut Server as the core of a platform for asset management, approvals, and delivery. I wanted to append that post with some recent thinking and findings.

First, a quick discussion of semantics:

When you ingest a media file into Final Cut Server, it creates an asset. This asset is actually a collection of files, including the original media file, or primary representation. If the file being uploaded is a graphics or video file, Final Cut Server creates additional representations: a poster frame and a thumbnail. These are used to represent the asset’s media within Final Cut Server. If the file being uploaded is a video asset, a clip proxy representation is also generated, used for viewing the file within Final Cut Server.  This representation is created by transcoding the primary representation file to a lower-resolution codec.

Asset Representations in Final Cut Server

Asset Representations in Final Cut Server

So a video asset is actually a container that’s made up of a bunch of files. This is pretty cool, and it’s mostly transparent to the end-user in Final Cut Server. However, while these representations are customizable (codecs, quality, etc), they all generated on ingest. Final Cut Server doesn’t currently support a way to create a new representation of an asset on-the-fly and have that representation become part of the asset container.

I’m struggling with this limitation as I explore Final Cut Server/Episode Engine integration. It would be ideal if I could setup Episode integration via a Final Cut Server copy response to an Episode watch folder, and have the resulting transcoded file copied back into Final Cut Server and made a representation of the original asset. Right now there’s no way to do this, so instead we are only able to re-ingest the new transcoded file as a new asset. And there is no relationship between this new asset and the original asset from which it was created.

Frustrating, but we’re thinking about ways around this. More to come as our tests and thinking solidifies. More info on Episode Engine/Final Cut Server integration in this pdf from Telestream’s website.

Share this: Share this page via Digg this Share this page via Facebook Share this page via Twitter Share this with Linked in

Written by Charlie Miller

April 9th, 2009 at 10:29 am

Connecting the Dots with Final Cut Server

with 3 comments

As an Enterprise Consultant at Control Group, I help lead our Broadcast, Media, and Entertainment technology consulting group. While CG employs experts in a wide variety of technologies, my area of experience and expertise is focused around Apple solutions for professional video and design. A few months ago, I wrote an article for O’Reilly on Final Cut Server that was targeted at consumers and covered the basics for professionals in the production industry. I wanted to expand on that article and share some thoughts on Final Cut Server as part of an integrated media workflow.

Final Cut Server client

Final Cut Server client

Apple markets Final Cut Server as a tool primarily for Final Cut Pro users. Apple’s focus is on enabling users to manage their FCP projects and related files, providing them with automations to save time, and giving production teams a centralized system for collaboration. Beyond Apple’s sales pitch, we think Final Cut Server has real potential to play a central role in a production and distribution platform made up of a framework of connected systems.

Here’s an example of a typical broadcast infrastructure:

  • Storage area network (SAN) for storage
  • Media asset management system (MAM) for organizing and versioning
  • Editor/artist workstations
  • Producer workstations
  • A transcode system for delivery

Now here’s an example of how those pieces might fit together in a broadcast workflow:

  1. Content from tape or tapeless media is ingested through the MAM. Metadata is added at ingest – both technical metadata (shot, tape, take, etc) and possibly contextual metadata (actor, object brands, locations).
  2. Data is saved to the SAN, where it is cut and crafted by editors and artists. As the content comes together, project files and new assets are saved to the SAN by editors and artists, and reviewed by producers.
  3. As content is completed, it is transcoded for delivery to television, tape, and the web. Web distribution might include delivery in a custom player, and/or Hulu, YouTube, Vimeo.
  4. Once content is in the wild, content owners need analytics tools to understand who is watching what and where.

Beyond its out-of-the box capabilities, Final Cut Server can be customized to play a key role in workflows like these. While it doesn’t include an API, developers can leverage custom responses in Final Cut Server to read and write XML and run external scripts. On its developer website, Apple provides an example of Final Cut Server integration with an external Rails application that enables the viewing and commenting of movie clips in a web browser. An example like this serves as a useful starting place when exploring building the middleware to connect Final Cut Server to other applications or platforms in a workflow.

Episode Engine Admin

Episode Engine Admin

For example, Final Cut Server leverages Compressor for all of its out-of-the-box transcoding. However many existing infrastructures exist using established transcoding systems, such as Telestream’s Episode Engine. By combining metadata subscriptions and watch folders in Final Cut Server with custom responses that leverage external scripts, Episode can easily be integrated as the transcode delivery component for a Final Cut Server workflow. Similarly, the ability to read and write XML to assets in Final Cut Server makes possible the development of web applications that interact with assets, and can even store information in their own disparate databases, populating Final Cut Server when appropriate.

What excites us about this are the many Final Cut Server integration possibilities that are not currently being talked about. And since Control Group marries Apple video integration expertise with a team of developers under the same roof, we’re excited to continue to innovate in this area. Give us a shout if you’d like to open up a dialog on how Final Cut Server might fit into your broadcast or production workflow.

Share this: Share this page via Digg this Share this page via Facebook Share this page via Twitter Share this with Linked in

Written by Charlie Miller

March 27th, 2009 at 12:27 pm

services people careers press blog contact follow us