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