Skip to main content

IBM Toolkit for MPEG-4

A set of Java classes and APIs with five sample applications: three cross-platform playback applications and two tools for generating MPEG-4 content for use with MPEG-4-compliant devices.

Date Posted: May 1, 2003

alphaworks tab navigation


Update: December 11, 2006 Version 1.3.0: Fixed multi-instance audio monitoring. Added X and/or Y mirrored (flipped) output in player API. Updated support for Xerces to 2.9. Documented JavaScript API for applet.

1. What is MPEG-4?

MPEG-4 is a new multimedia standard for coding and composing audio, video, graphics, text, etc., into a presentation scene with user interactivity. MPEG-4 coding treats a scene as a collection of media objects, each of which is individually coded and can be dynamically updated.

MPEG-4 is an ISO/IEC standard developed by MPEG (Moving Picture Experts Group). MPEG-4 builds on the earlier MPEG-1 and MPEG-2 standards published by MPEG. MPEG-4 is a standard for composing rich media in a graphical scene. Various rich media including audio, video, images, text, graphics can be placed in 2- or 3-dimensional scenes with which the user can interact. See the MPEG Web site for further information.

2. What is ISMA?

ISMA stands for Internet Streaming Media Alliance. ISMA sets forth a framework of open standards for streaming rich media over IP networks and the Internet.

3. How do I create ISMA-compliant content?

Use the AVgen application. It takes pre-encoded MPEG-4 Simple Profile video and Low Complexity AAC streams and creates an mp4 file from them and, optionally, "hints" it.

4. How do I create suitable input media files?

Search on the Internet for third-party video and audio encoders that convert between various media formats. For example, check out DIVX encoder for creating MPEG-4 video files. Go to the DIVX Web site.

5. What media formats are supported?

The IBM Toolkit for MPEG-4 supports Simple Profile MPEG-4 video and Low Complexity AAC for audio. It also supports the popular MP3 audio format and JPEG images.

6. What is MPEG-4 Systems?

MPEG-4 Systems is the part of the MPEG-4 standard that describes a scene containing various 2D and 3D graphical elements into which other audio/video media streams can be composed. The scene is designed to be dynamically updated, using highly compressed Binary commands for the Scene (BIFS), so that the overall content presentation can be changed at will.

7. How do I create content containing MPEG-4 Systems?

Use the XmtBatch application. The input is a text document in Extensible MPEG Textual (XMT) format that can be edited with a plain text editor or any XML editor of your choosing. If you want to include video, audio, or images, then you need those in pre-encoded formats such as MPEG-4 video, AAC, MP3, and JPG.

8. What output formats can be created?

AVgen and XmtBatch can create:

XmtBatch can create:

9. Why can't I find some of the items described in the Help?

The IBM Toolkit for MPEG-4 released on alphaWorks does not contain all the technologies we have developed for it. There are licensing and other legal issues behind this decision.

10. I have heard of profiles and levels. What do you support?

The MPEG-4 video CODEC supports decoding of Simple Profile Video streams. The AAC decoder supports Low Complexity profile.

11. Is the IBM Toolkit for MPEG-4 written totally in Java?

Yes, the IBM Toolkit for MPEG-4 is written completely in JavaTM and will run on any operating system with the appropriate Java Virtual Machine (please see the system requirements for more information). We do, however, have native audio and video decoders, audio players, and other components that can improve performance or quality for Windows, WinCE, and Linux. These were not included in the evaluation package here.

12. When using M4Play or M4Applet, why do I get different behavior playing content in different Virtual Machines?

Please see the next two questions.

13. Why does my audio have poor quality?

Before Java 1.3, the audio support in Java was mainly for applets and was in officially undocumented classes such as sun.audio. In Java 1.1, the only support was for 8kHz u-Law Mono audio. So to play audio there, we have to "down sample" the content which results in loss of quality. We recommend that you use Java 1.3 or above; these versions use JavaSound, which provides much improved audio quality.

14. Why do my graphics look different, and why I don't have transparency effects?

Prior to the Java2D support, which was introduced in Java 1.2, the graphics capability was provided by the AWT. Java 2D introduced a very capable set of graphics functions and included such features as line styles, anti-aliasing, transparency, etc. We recommend that you use Java 1.2 or above; these versions have Java 2D support as standard.

15. Why are there different requirements for the player and creating components?

The player components were designed to automatically adapt to the Java Virtual Machine capabilities and run on older Java versions that can often still be found in the browsers, so that a player can be deployed as an applet.

16. Where can I get more information on the IBM Toolkit for MPEG-4?

Please go to http://www.research.ibm.com/mpeg-4, where you can find information about our team and the research we are involved with.

17. Where can I get more information about MPEG-4 and MPEG-4 Systems?

The following books and Web site are useful references:

18. Where can I get more information on XMT, the textual authoring format?

The XML format is based on SMIL and is now part of the ISO/IEC specification, which can be purchased from ISO. There are also some working documents for the MPEG-4 standard on the MPEG home site.

At the time of this writing, in the "Systems" section is the draft document WD 1.0 of ISO/IEC 14491-1 3rd Edition, which contains the specification for XMT.

The books listed above also contain chapters on XMT.

19. Can I use the IBM Toolkit for MPEG-4 to develop my own applications?

Yes, the IBM Toolkit for MPEG-4 SDK package has documentation and sample code and is available for use and evaluation.

In addition, you can license the IBM Toolkit for MPEG-4 SDK. For more details, see the alphaWorks licensing page or e-mail alphaWorks.

20. With this toolkit, can I play or use content created by other vendors' tools?

Yes; MPEG-4 is an open, interoperable standard. MPEG-4 does contain very feature-rich tools and our evaluation package implements only a subset concerned mainly with audio/video applications and 2D graphics; however, we have done interoperability testing with other vendors and have provided reference bit streams to the MPEG-4 standard.

Trademarks






Related technologies