QuickTime Overview
Peter Hoddie
QuickTime Architect
Apple Computer
What is QuickTime?
- File format
- Run time architecture
What is QuickTime?
- File format used by many run times: QuickTime, ActiveMovie, SGI, X-Anim,
Scitex
- Run time supports many file formats: QuickTime, AIFF, Wave, MPEG, AVI,
MIDI
File format and run time
- Support many data formats
- JPEG/JFIF, GIF, BMP, PNG, Cinepak, MPEG, H.261, H.263
- AU, IMA, G.728, G.722, MPEG
- Has been implemented efficiently on many platforms: Macintosh, Windows
3.1, Windows 95, Windows NT, SGI, OS/2
QuickTime File Format
- Meta container for media data
- Consists of two distinct parts
- Media data
- Video frame, audio, etc.
- Media index (movie resource)
- Number and types of tracks
- Compression format
- Relationships between tracks
File format - Movie
- Temporal properties: Timescale, duration, default rate
- Copyright
- User data
- Application specific data
- Edit history, author, etc.
- One or more tracks
File format - Track
- Generic media streams
- Spatial properties: location, size, layer, compositing information,
clipping
- Audio properties: volume, balance, spatial placement
- Edit list to sequence its media
- Language
File format - Track
- Alternates
- Indicates substitute tracks
- Choose one at run time to use
- Language
- Availability of decompressors
- Bandwidth
File format - Media
- Represents the sample data
- Each sample consists of
- Sample description
- Sample duration: Variable frame rate
- Data reference
- Sample offset and size
Media - Video and Sound
picture
Media - MPEG
picture
Media - Sample Descriptions
picture
Media - Data References
picture
Low bit rate media
- Text
- 3D
- Music/MIDI
- Sprite/Animation
- Tween
File format - Extensibility
- Media index is public
- Updates published regularly
- Adding an extension
- Anyone can add custom extensions
- Apple works with developers
- Avoid conflicting extensions
- Define extensions with the broadest possible applicability
Run time
- Create, modify, and play media
- Parallels the file format
- Built on a standard extension mechanism Ð components
- Registry of available services
- Isolates user of services from implementation
- Anyone can create a component
Run time - Media Handlers
- Implements the play back of a specific media type
- May use lower level components as part of the implementation
- Video or sound decompressors
- Music synthesizers
Run time - Data Handlers
- Provide access to media data for Media Handlers
- Data Reference format determined by Data Handler
Run time - Importers
- Convert data into QuickTime format
- Duplicate or process the data and create a QuickTime movie file
- Construct run time movie which references the original data (MPEG,
Wave, AIFF, AVI)
Interactivity
- Deliver complete interactive experiences in a QuickTime movie
- QuickTime VR is a simple example
- Build on existing QuickTime ideas
- Extensible
- Public data and file formats
- Media structure distinct from media storage
Interactivity - Objects
- Define movie and track as objects
- Media type for interactive objects
- Sample corresponds to a scene
- Controls, text, windows, movies
- Media data stored independent of object definition
- Object accesses media data through data references
Interactivity - Behaviors
- Common behaviors are controlled by properties, not code
- Object dragging and resizing
- Animation
- Windows, sliders
Interactivity - Behaviors
- Object message handlers to customize behaviors
- Language and runtime independent
- Platform independent byte code (Q-code, Java, command stream, custom)
- Platform dependent code (68k, PowerPC, x86)
Interactivity - Video
- Overlay interactivity onto traditional QuickTime movies
- Stop points
- Reactions to clicks on characters in video
Scenario - Netscape Plugin
- Uses pure QuickTime movie
- Simulates streaming
- Movie must be self contained
- Also handles MPEG, Wave, AIFF
- Future version
- External data references
- Track alternates for data rate, media format, and language
Scenario - Multi-format
- Movie can reference data stored in a streaming format
- Backward compatible access
- No need to duplicate media data
- QuickTime movie file itself can be in streaming format
- Allows same file to be used by clients with varying capabilities
Scenario - Server
- Standard media container allows decisions to be made in generic manner
- Server performs alternate selection
- Based on stored user profile cookie
- Fast to create media index
- Server could return only segments of movie based on request
- Smaller media index to transmit
- No need to store separate edited version
- spatial vs audio abstraction lets server make smart decisions for new
media types
- Post processing
Scenario - Users
- Common data format everywhere
- Tools support
- Fast and easy to post media to server
- Can support streaming and non-streaming clients
Scenario - Packets
- Extension to store packet size of sample data: Done today by QuickTime
Conferencing
- Ability to store progressive resolution data in separate tracks: Allow
server or router to disregard higher resolution data
Scenario - Components
- QuickTime's extensibility mechanisms will make it possible to download
extensions as needed to client
- Media Handlers
- Decompressors
- New interactive objects
Scenario - Beyond browsers
- The internet as a big hard disk
- Part of media local, part remote
- Combine data from several sites
- Very interesting with interactivity
- CD-ROM of base content
- Enhanced by live information from the internet
For more information
- Web Sites
- Email: hoddie@apple.com