InfoQ

News

Sun to Enhance Video Support with Java Media Components

Posted by Geoffrey Wiseman on Jun 13, 2007 07:30 AM

Community
Java
Topics
Rich Client / Desktop ,
Rich Internet Apps
Tags
Java SE ,
Sun Microsystems

It's no secret to most developers that Java's support for media, and in particular, video, is not stellar. For some developers, this is a serious problem, particularly when some are choosing technologies for building new Rich Internet Applications (RIA) in Flash, Flex, Silverlight, Adobe Apollo/AIR and others. Each of these platforms treats media and video as a first-class capability, almost a foundation of their technologies.

Recently, some have argued that Java needs to fix its support for media and video, and fast, or risk losing its remaining chance to really participate in the desktop and in the rich internet application space. Chris Adamson, for instance, argued the point in a three-part article a follow-up BoF session at JavaOne, and a recent summary of the issue:

Flash is a more significant rival for Desktop Java than is generally understood. It is quite remarkable that the abililty to create Flash applications is so desirable that Adobe can charge hundreds of dollars a copy for its development tools, while Sun can hardly give theirs away (woo hoo, at least IBM can give theirs away). Why? Largely because it handles media so well. And this is serving to grow a generation of web-based JavaScript/ActionScript developers who see Java as "your father's programming language", much like C++ was for some of us who picked up Java 10 years ago.

So for those people, and to everyone who's been frustrated by the support for multimedia in Java, Chet Haase's entry on Java Media Components may bring some relief:

This new feature, hopefully shipping in Java SE 7, is intended to support basic playback support for Java applications. JMC is also, eventually, intended to address capture and streaming capabilities."

Java Media Components would start by introducing support for embedding native players (e.g. Windows Media Player, Flash, Quicktime):

The idea is to expose a simple API for playback control (e.g., play, stop, and rewind), and to allow a Java application to thus control playback of specified content through whatever was available on the native system. For example, playback of an AVI file on Windows might launch Windows Media Player. Moreover, the native player would be exposed through a GUI component that you could integrate into the rest of your application's interface. There would also, depending on the underlying native support, be options to either expose the native controls for the player (e.g., the Play button), or to allow the developer to skin their own controls around the player component.

This native-wrapper functionality is the easiest part of the whole JMC project. The main work is in the simple API design and the glue code to the various players on different platforms. In fact, we already have prototypes of this working for several players, including Windows Media Player and Flash.

A second effort would look to create a Java player that can use a common format on all platforms, without having to worry about which native players are installed.  More speculative and forward-looking features include giving Java developers access to the pixel data contained in video streams, or video capture and streaming.

In the comments that follow the announcement, you can see that some believe this is welcome news, others have suggestions about alternatives, and others still prognosticate that this is an effort that is already doomed.  Where does your opinion fall?  Are you excited, wary or unimpressed?  Either way, you can continue to follow the story as it develops at InfoQ.

JMF by Enrique García Posted Jun 13, 2007 12:33 PM
Re: JMF by Geoffrey Wiseman Posted Jun 13, 2007 12:40 PM
Update (1:41 pm) by Geoffrey Wiseman Posted Jun 13, 2007 12:42 PM
  1. Back to top

    JMF

    Jun 13, 2007 12:33 PM by Enrique García

    It will be cool. Is it going to be like the JMF but included in the standard VM so you wont have to download anything else to use video and audio?

  2. Back to top

    Re: JMF

    Jun 13, 2007 12:40 PM by Geoffrey Wiseman

    I definitely got the impression that inclusion in J2SE by default is the target, yes, although it would have a smaller footprint than JMF to make that possible, I would think.

  3. Back to top

    Update (1:41 pm)

    Jun 13, 2007 12:42 PM by Geoffrey Wiseman

    I've made a slight revision here to include a little more of Chet's announcement. It's just a minor content revision, but I thought it wise to comment in case the transition ends up being jarring for anyone.

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.