MMAPI (Mobile Media API) Multimedia Framework for Mobile Devices Zohar Sivan IBM Research Laboratory in Haifa IBM Labs in Haifa
MMAPI Objectives Provide a standards-based Java multimedia framework for mobile devices Use Java (J2ME) as the platform for maximum portability Enable easy and simple development of rich media applications for mobile devices Provide all necessary APIs and implementation for media capture, processing, streaming, playback and security Extend IBM s solutions for secured adaptive delivery of media content to the mobile environment Extend IBM s client middleware to support Multimedia applications and services
MMAPI The standard A JSR for enabling media applications in J2ME (JSR 135) Why Mobile Media JSR? MIDP 1.0 lacks of multimedia support MIDP 2.0 includes only simple audio support Application (MIDlet) developers need to use proprietary Java APIs for media related tasks Specification lead Nokia Significant members Motorola, NTT DoCoMo, Philips, Siemens, Sun Microsystems, Symbian, Vodafone Group Final Release on June, 2002 Maintenance Release on June, 2003
MMAPI Overview Simple playback of audio and video Capture Does not mandates the media formats or protocols Flexible - audio-only vs. general multimedia Architecture Manager VideoControl creates DataSource provides data encapsulates protocols Processor provides controls * Control MIDIControl RecordControl HTTP File VolumeControl
MMAPI Overview (Cont.) Manager A factory for creating players Can be queried for supported media types and protocols Enables simple tone generation DataSource Encapsulates the media origin (protocol) File, HTTP, FTP, RTP/RTSP Provides data from a capture device Specific DataSources can be developed for customized protocols
MMAPI Overview (Cont.) Processor Handles specific media type Reads from a DataSource and renders the media State management: realize, prefetch, start, stop, deallocate, close Can post events to the application (end of media, stopped, etc.) Control Enables to control specific features of the Player Most Controls are optional and depend on the underlying implementation of the device A Player provides a list of its supported Controls
The MMAPI Implementation Pure and highly efficient Java Framework Can accommodate new media types Enables integration of 3 rd party codecs (Java/native, software/hardware) Enables integration of platform-specific renderers Application (MIDlet) MMAPI Mobile Media Framework Decoders Renderers J9 MIDP Decoders Native OS
The MMAPI Implementation (Cont.) Uses IBM codecs MPEG-4 video Java and native decoder MP3 audio native decoder Open standards compliant MP3, MP4/3GPP/ISMA media types HTTP/RTSP/RTP streaming Size About 150KB (not compressed) excluding codecs Performance Up to 30FPS for an MPEG-4 video only player on ipaq and Palm devices Released as part of IBM s Workplace Client Technology Micro Edition (WCTME 5.7)
Some MMAPI Implementations are already in the market T610 Z600
MMAPI Extends VideoCharger and ARMS to the mobile environment! "# $ Adaptive delivery MMAPI! Non-adaptive delivery
MMAPI Use Case - On-Demand MP3 Cellular service operator would like to launch a new music (MP3) download service The operator offers a variety of devices to end users Samsung - Brew Nokia Symbian CSL MS SmartPhone The download service needs to be secure Develop an application to authenticate the user and establish his privileges Various OSs enforce different development and deployment MMAPI enables the development of a Java cross-device solution Operator only needs to validate that its new devices support MMAPI
MMAPI Use Case Media Capture Latest mobile phones include small camera and microphones The consumer case You travel and want to upload video clips of your visits Your mobile phone needs to find an available hosting server The server needs to get your approval to charge your account The enterprise case A radio news reporter makes an interview The audio recording is uploaded to the broadcast center The reporter uses the mobile phone to edit the audio (cutting) The editing locations are sent as meta data Both examples require a deployment of an application on the device Using MMAPI a Java cross-platform solution can be delivered
MMAPI Use Case - Provisioning What happens if the downloaded content has no suitable player? No MP3 player on the device MMAPI can be extended to support over-the-air provisioning Specific media types players (animation) Missing components (codecs) Media can be bundled with a proper player New players can be pushed to the device Device management