Digital Media • 41:02
It has been an incredible year for QuickTime, and QuickTime TV has become an industry unto itself. Find out how to capitalize on the success of QuickTime.
Speakers: Tim Schaaff, Jim Batson, Sam Bushell
Unlisted on Apple Developer site
Transcript
This transcript was generated using Whisper, it has known transcription errors. We are working on an improved version.
So I'd like to bring up a good friend, long-time associate, Jim Batson, QuickTime team, one of the founding members of QuickTime team. He's going to help me with some of the demos. You know him well. So, QuickTime has had one of the best reputations in the industry when it comes to the quality of the software we produce. And I am really proud of this. This is something we've worked really, really hard on over the years.
And a big part of the way that we accomplished that is through a very aggressive seeding program. Now, somewhere along the way in the last few months, in the frenzy of all this stuff we've been doing, we seem to drop the ball. And a couple of releases, a QuickTime got out the door without any seeding. And you guys, you're very passionate. You let us know really clearly and frankly how you feel about that. So we decided to make a movie to commemorate this, learning these old hard lessons all over again, and we'd like to show that to you now.
I'm done programming for today. I think I'll relax with some QuickTime TV. I've got kickboxing. I've got some...ah! Let's do it. QuickTime! Green is hip! Kick! Hey Jim! What is it this time? I just updated a QuickTime 4.1.1 and it broke my website! Yeah, right. Yeah, well what are you going to do about it? Whatever.
This one has a little star. This one has a little car. Say, what a lot of seeds there are. Yes, some are red and some are blue. Some are old and some are new. One of the great things about being on the QuickTime team is there are some really creative people. We've got some good editors. It's a lot of fun. It's really a ride.
So, may we not forget this hard lesson for another nine years. Can we go back to slides, please? So, you're probably interested in how you can get involved in seeding. We have decided to make some changes in the way we're doing our seeding to make it easier to reach more of you more efficiently, more effectively. And effective immediately, we're moving the whole seeding program for QuickTime over to be in line with the regular Apple seeding that is done elsewhere in the company these days.
The easiest thing for you to do is to go up to the developer website, and you can get the details, you can sign up, it's not going to cost you anything. And we've also got these mailing lists, you can find them at list.apple.com, there's about a half a dozen of them. And you can find out what's going on, how your other peer developers are doing with the various seeds. And it should be a good forum to make a great product going forward.
The guy who's going to keep us honest in all this is a guy named Jeff Lowe. He's the QuickTime technology manager here at Apple. And so if you have any questions or issues or concerns, feel free to send him an email, and he'll get right back to you.
So, this show seems to be about Mac OS X. You've seen a lot of QuickTime in the keynote session this morning. Unfortunately, you're probably not going to see a lot of QuickTime, a lot of Mac OS X in this session. The basic message I want to bring to you today is that QuickTime and Mac OS X is really like QuickTime everywhere else.
We've got the same APIs, the same features, the same bugs, it's all the same stuff. It's all there in DP4. You've got the disks. You know, I encourage you to go and play with it and let us know what you think. We're going to be working on it throughout the rest of the summer as we wrap this up, and hopefully come fall we'll have a great piece of software there that you can base your applications on Mac OS X on. So we've got only one session focused on Mac OS X, and I will confess that that session isn't entirely about Mac OS X. But the reality is there's just not that much that you need to know about Mac OS X for QuickTime on X.
So, okay, let's talk about some of the details in the QuickTime technology area, a little bit about what we've been doing over the last year since we got a chance to get together. One of the key areas that we are focused on with QuickTime is an area of content creation. Of course, Apple Computer is completely focused on content creation. These are our customers.
These are our core customers, creative people working in education, consumers, design and publishing professionals who create content for a living. We are doing innovative work in a number of areas, and the first one I want to talk about is Sound Manager. Ah, see, I lied. I'm going to talk a little bit more about Mac OS X.
The sound manager on Mac OS X is getting a major facelift, and we're adding some key capabilities that developers in the professional audio tool space have been asking for for years, and I'm really pleased to see that we're moving ahead with this. The goal here was to provide some industrial strength foundation for your professional audio applications. And that starts at the hardware level. We are going to build, provide a whole new hardware abstraction layer that's going to provide low latency I/O for your cards.
Hardware-based synchronization for much better timing. True multi-channel in and outs, so you can have, you know, eight parallel channels running without having to bypass all the operating system to be able to do that. And we're going to also increase the resolution of all the pipes. We'll be talking about higher sampling rates, deeper bit resolutions, as well as floating point processing pipes. And we'll also be adding a plug-in architecture for effects.
This is pretty good stuff. In the MIDI area, we'll also be providing for the first time some standardized low-level I/O managers for MIDI. We've never had this standard on Mac OS 9. As you know, most people end up relying on things like OMS or free MIDI. And on Mac OS X, we're going to provide this basic infrastructure, and it'll provide the I/O and the timing services.
We're also making a significant upgrade to the QuickTime music synthesizer to go along with these new MIDI and sound capabilities. We're going to introduce a whole new music synthesizer that plays MIDI files that's compatible with the latest in MIDI standards, DLS2. And we'll have some new sequencing APIs to make it easier and more powerful than ever to add sequence music to your applications. And I hope you'll be happy.
I think this stuff is in DP4. Some of this stuff is in DP4 now, and we'll be seeding the remainder of it as the summer plays along. So, I hope this stuff plays out, and I invite you to get involved. We've got three sessions at the show that you should come and take a look at if you're interested in these technologies. And check it out.
So, ProVideo. These days ProVideo is basically about these three things. We're talking about really high data rates, we're talking about being able to handle multiple streams at once so you can create complex compositions, and because these people, professionals are concerned about their time, we're concerned about being able to provide real-time capabilities. Apple has been working in partnership with Matrox and Pinnacle to introduce two new very interesting hardware/software combinations that you might have seen if you went to the NAB show. Since many of you probably weren't there, I want to tell you a little bit about what we're doing.
The first company that I want to talk about is Pinnacle. They're introducing some new hardware that's going to provide unbelievable prices. The capability to be able to do HD format video. That's uncompressed, high definition format video. This is data rates about 120, 130 megabytes per second on a Macintosh running with QuickTime and Final Cut. This is an amazing development. The monitor costs more than the total cost of the rest of the system. It's a really wonderful development.
We're also working with Matrox on a very low cost, very powerful system to enable you to do real-time effects, dual-stream processing of DV streams, and standard definition uncompressed video. And I'd like to have Jim help me show you a demonstration of what we're doing there. All this stuff is built on top of the QuickTime effects architecture that's been in the system for the last couple of years.
And so if you want to take advantage of these capabilities when the hardware starts shipping, all you've got to do is support QuickTime and you'll be able to do this. Final Cut's calling the standard APIs, and that's all it takes. Can we have a demo for it, please? Okay, so we're just running a copy of Final Cut. We've got this Matrox card in the system. We've got a series of cut, edit video clips.
Now as you know, Final Cut's got a very powerful capability for adding effects and controlling effects rendering inside of the clips. I'm going to ask Jim to add some dissolves. Normally when you do this, you've got to now wait for a while while Final Cut renders this. But with the new hardware and QuickTime's effects architecture, you just roll back to the top and play.
So that's a pretty good effect. It's kind of the bread and butter effect for editors. Do you have anything a little wackier? Two video tracks, one called Lake Scene and the other one just Water Ripple. Water Ripple is just straight on top of the Lake Scene, so you can't see the lake.
But when we put this effect on top of the Water Ripple, what's going to happen is the Water Ripple frame is going to zoom in, spin around, and fly around a bit. And once again, it's all green at the top, and this is all real time. So there's two DV streams in and one out. and of course, just scrubbing right through. And you can even see the transparency through that. Pretty cool. Pretty cool. Thank you.
Now, can we go back to the slides, please? So that was an example of using QuickTime's creation environment, effects architecture, to do professional quality video creation. Now, as you know, Apple's been working real hard over the last year to make consumer video creation a reality, and we've been working with a lot of developers in other areas to drive that forward as well.
QuickTime authoring being just another part of QuickTime, it's not just a Macintosh feature, it's something that we support on all the platforms where we take QuickTime. And this architecture was designed in a scalable way, so it's not just something that's going to be required or just used by professionals.
Sony's created a very innovative product that's based on QuickTime that they ship on all their VIO products now, and we'd like to show you that. Leveraging many of the same features that were used in the Matrox demo just a minute ago. Can we go back to the demo machine? Go to the laptop? This is an application called Movie Shaker.
So the first thing we need to do is drop some media in, so we just reduce the screen size. Okay, here's a folder with just some QuickTime movies. and it just drops right in and this becomes content that we can use. And so we'll just pick one of these guys. Let's pick the road one because he's pretty easy to see pretty well. And you have the play button. See, playing wrong. Scrub around. Normal QuickTime controller stuff, movies. And take a look at some effects.
And you have a preview mode here that you can look at. Bubbles. It's all pretty cool, because it's all Swift files. These are all flash animations. And then-- Obviously, in this context, in the consumer context, the goal is not so much workflow and process and speed and stuff like that. It's more about fun and creativity. And we just play through, and there's the result. Just right away. And we can also do some text.
The canonical text that you always had. And you can get a couple previews. There's Fade Right, you can just fade it all up, Shrinking, Random Spin. So, just drop the fade right into one of these effect bins here, and they all get applied at the same time. So now we've got the bubbles and the text, and it's pretty straightforward.
Then we move on to the shaker, which is a lot of people, you know, they just want to use their content. They don't want to spend a lot of time editing, so it's really nice to just have an automatic way of creating some interesting edits and sound effects and stuff like that. So we've got a lot of different modes here. We can kind of go to romantic mode all the way up to, I think they call this tarot mode, so let's try that one out.
And so we'll just shake it, and of course it takes a little time, but not too long. So right now what's going on is the application is basically creating a wacky edit of all the clips in your import bin. So now we can just click down here so we can look at the result.
[Transcript missing]
So let's go back to slides, please. So now I'd like to spend a little bit of time talking about some of the interactive features in QuickTime. The first thing we need to do is talk a little bit about what is interactivity. The basic concept here is we've got a really powerful engine for creating kind of linear media assets, video, audio, whatever. We've also built into QuickTime some very powerful features to be able to allow you to customize both the appearance and the behavior of your media.
Other people are doing things with skins, which is really not the same thing. That's about taking an application and changing the way the application looks, but it really isn't responsive to the media, and it's not able to modify the overall behavior of the application. We think this is really important. We think that the thing ought to be to skin the media, not the players.
So we've built some pretty cool technologies to allow you to do that, and there are a number of ways you can access this. The first one is through the movie controller. If you're programming with QuickTime today, you know that the movie controller is responsible for all the interaction that takes place in the movie.
And there's a lot of interesting things you can do with that, although most of that stuff's probably not obvious if you're not a programmer. We've also built this very powerful infrastructure inside of QuickTime that we call Wired Movies. It's basically the capability to execute code inside the context of the movie playback.
And this is code which is sort of like Java. It's portable. It's not tied to a specific machine architecture. And it has the capability to communicate with other parts of QuickTime, to be able to send events, and be able to modify behavior based upon user input and other events or conditions that arise in the movie. We've also built an incredibly comprehensive set of interfaces to QuickTime from Java. So if you're a Java programmer and you like to work in that environment, you can do pretty much everything you can do with QuickTime, the C APIs, plus some other things.
And then, of course, QuickTime is a very powerful software. It's a very powerful software. It's got a very strong layered architecture. And you can always extend QuickTime via new kinds of media handlers, new kinds of components, or you can override and extend those yourself on the existing ones.
The first kind of interactive media that Apple ever shipped was QuickTime VR. And you saw some interesting demos of that this morning. We're doing a lot of work in this area now. And I think it's pretty amazing. One of the things that didn't come out this morning that I found to be a very interesting story about QuickTime VR is that in the auto industry, it turns out that most of the car manufacturers have standardized on QuickTime VR as the format for displaying their new car models.
And what we've heard from the photographers who go to these companies and who are doing this work for them is that the quality of the stitching, the quality of the rendering, the ability to provide clips at very high quality sizes, as well as smaller and easier to download sizes, makes it very attractive.
And it turns out the dynamic there is very similar to the dynamic that we see with the movie trailers. They really care a lot about the quality. And QuickTime VR seems to be the one technology that's providing that for them. We've got Audi, Acura, BMW, Dodge, Ford, Mercury.
and it goes on and on. There are several others and a whole bunch more to come. It's quite interesting and I think what we're going to see is we're going to see this direction moving over to other related industries. Airplanes, boats, that kind of stuff. It should be interesting to watch it evolve.
So now what we're going to do is we're just going to go through some demos of various ways that you can work with interactivity, ways that you can wrap your media with interactivity and custom appearance in order that the experience is sort of what the content producer wants, what the director wants, not what the application provider is trying to deliver. Go ahead, let's switch to demo two, please. What are we starting with here? Okay, so the first thing that we're going to start with is the Lord of the Rings trilogy trailer that you may have seen.
Now what you can see here is we've got the movie playing in the middle, we've got some interactive buttons around the outside, and this has basically taken the media and provided kind of a whole application environment around it that was designed by the movie makers. And you get the same high-quality QuickTime video playback, but you've also got this great environment based... It's a great environment that provides interactivity and a customized appearance. This particular clip was created with Live Stage Pro from Totally Hip, probably one of the more popular tools out there for creating this kind of interactive media. Why don't we move on to the next one.
So that's an approach that requires a little bit of programming, sort of this drag and drop of media elements and a little bit of programming. Here's an approach which takes kind of a lot of programming, but gives a very, very interesting customized
[Transcript missing]
Just the basic stuff. It's a QuickTime movie. It's completely a QuickTime movie. Authored with Java. That's a big interface. The interface is totally nice.
Okay, so let's move on to the next one. Okay, this last one comes from a company called TribeWorks. Their product is called iShell. This is a customized iShell's taken QuickTime and they've extended the interactive capabilities by adding a little bit of their own runtime. And what you can do with that is you can pretty much create any kind of interface you want.
You're not restricted to rectangular windows. You can adjust all the elements, and there's no programming required for this. So you can go out and create whatever kind of media presentation you want, and you can access all the interactivity functions, and you can make it look any way you want.
This particular one, I guess, has got several channels of movie trailers. You can access by turning the knobs, control the transport controls, of course. Very powerful stuff. If you're interested in this, you can actually go up to their website and download their tools. They're basically free for download. You can evaluate them. They have a very novel kind of business model. TribeWorks.com.
So that's all we're going to talk about in the interactivity area. We've got a whole bunch more information for you at the show this week. Can we go back to the slides, please? We've got a session covering QuickTime for Java that follows this session today. And then on Wednesday, we've got a whole session devoted to interactivity. What you'll see there are some of these examples decomposed in a lot more detail, and we'll talk about some of the other things we're doing to increase the quality and the degree of interactivity in QuickTime. So now I want to talk about QuickTime and servers.
This is an area that's been relatively new to the QuickTime team. We've been working with server-based technologies basically since we started doing the live streaming stuff. Now the first question is, why do we care? What are servers good for? When we thought about this, we came up with, say, a half a dozen basic things that servers do really well that are very hard to do from the client all by itself.
Access control. If you've got valuable assets sitting on a server somewhere, you don't want to just hand them over to the client and let them be distributed anywhere without any control around the internet. Servers are great at providing access control. They're also great for copy protection. That means you can take your clips and potentially encrypt them, encode them. You have a tight coupling between the server and the client so that only this customized client can access the media.
Servers, of course, are great at counting. If you've got a lot of people hitting the server, accessing various kinds of media, the servers tend to do a much better job than a client of finding out what's going on with all the various clients in the world. Servers also have some powerful capabilities for looking at the environment around them and producing dynamic, just-in-time media compositions.
And then, of course, servers have always been kind of a hub for community kinds of activities. Whether that's, you know, email servers or things like that. And then, servers are big databases. These are really important concepts when you start to think about what do servers mean for QuickTime.
Now, the way the servers end up interacting with QuickTime is really simple. The whole mechanism ends up basically being embedded in the communication that goes between the client and the server. In simple transactions relating to URLs. The client requests the URL, the server interprets the URL and responds accordingly. So depending on what you decide to put in the URL, you can drive all kinds of different sorts of behavior. This is old hat for the server guys.
But it's an incredibly simple concept that has incredibly powerful ramifications. So with QuickTime today, there's basically two ways you can approach... Customizing the behavior of QuickTime through the server. One of them is one we've recently introduced. That's QuickTime streaming server plug-ins. There's a very rich set of plug-in capabilities for servers, for the QuickTime streaming server that will allow you to access accounting and logging kinds of functionalities, being able to pre-process streams, being able to control access to the back-end data access portion of the server. It's incredibly powerful. There's a whole session about this that you should go to and check out if you're interested.
And then of course there's CGI programming, which is sort of the die-hard of server-side programming, client-server interactions. And this is basically custom applications that masquerade as web servers. And WebObjects is a great example of that. And I guess now that Apple's handing that out for dirt cheap, you should get a copy and see what you can do with it. It's really, really powerful.
The servers basically interact with the client by passing back media. We process movies, of course. We can also receive any media that QuickTime knows how to open, so it doesn't have to be a .mov file. It doesn't have to be a QuickTime movie per se. It can be anything that we can open. And we also support SMILE, which is this text-based dynamic language for describing media compositions.
Let's show you a real simple demo here. Let's go to demo two. This is a stock plot demo. So this is a movie. This is just a movie. This was created with Live Stage Pro, and it's got a text field that you can type into. Yeah, this is the bad news. They never like it when we don't introduce hardware.
[Transcript missing]
So let's talk about things that get more powerful than that. Can we go back to the slides, please? So, we need to talk a little bit more about Smile. Smile is one of the fundamental technologies that you can use to control the media composition to be able to generate just-in-time kinds of content.
Smile is an HTML format, HTML-like text format for describing media compositions. It covers spatial relationships, temporal relationships, and it has the ability to refer to other URLs. And it provides capabilities to be able to link to those URLs. It's really, really very simple. Do we have an example of that? Yeah. Yeah, okay, why don't we switch back to the demo machine, demo two? Demo two.
So, I'll show you a real simple one. Right. So, here's a Smile file, and we're going to drop it onto Code Warrior first. So, we're going to look at what the text looks like. Okay. So, you know HTML, this stuff looks pretty familiar. It's XML-based. So, you kind of have, here's the tag to define the whole thing, right? You've got a head area and a body. The head area, the head tag defines layout, contains layout, which then defines the areas of the presentation. So, right now we've got the root layout, which is the whole presentation, 554 by 420.
And inside that we've got a slide area, which is kind of offset into the middle and takes up the same size of these source images down here. And the body, we just have a sequence of images. One after the other, each lasting one and a half seconds that play in the slide area.
Okay. So, just going to go out to the finder here, and then we're going to just drop, just double click that file. And now we have a movie, and we can just step through the images. Okay, so you just have a sequential set of images. The red is the color of the layout of the root over here. We'll change that to something else, to silver.
[Transcript missing]
So we can do this quickly. So now the sequential section is now becomes its own kind of unit. And now the parallel.
[Transcript missing]
All you have to do is go to the text editor. It's really easy. Just type some stuff in. You can use QuickTime to open it up, check it out. We're going to go into more in depth on this tomorrow at the server-side scripting session over across the street. So to help you out, find your way there, we've put together the smile document.
Just take a quick peek at this. You can look. The header is very small, just a very simple layout, and then we just sequence a bunch of media to create our new presentation. So just go ahead and open that and play that for you. And it also includes embedded text.
Audio, please. So, you've got to find your way to the stairs and get out the front door. Okay. Remember, Steve said to go and try it, okay? He said, "Great. Go see the QuickTime show." Well, it was a nice day the other day, okay, so... The battery was sunny. But you gotta be careful about crossing the street. You don't want to get run over. So hit the button. -Aboard! Not much further to go, so hang in there.
and don't forget to leave plenty early so you don't get too tired for the show. So, okay, so the smile stuff is really important when you want to talk about servers because it's a text-based format, and as you all know, servers deal with text a lot better than they deal with graphics. This is a very powerful way to describe the media in a dynamic fashion.
This is the kind of mechanism that you get, that you're using when you talk about inserting ads. You basically have a smile document which references the content that is not the ad, and then on the fly they can send a CGI script to the ad server, and the ad server uses cookies and whatever other kind of information it has its access to to be able to provide back a media reference, which might be a movie, it might be an animated GIF, it might be something else that QuickTime can then render in line with the other media. Pretty neat. So let's talk a little bit about the content. Let's show the demo of the QuickTime streaming server plugin. So this is a version, this is a server-side interaction that's, So we've got a list, scrolling list here of, um, scrolling list of songs.
You can click on it, it'll play the song. So what you see here is just a text track. It has a bunch of K-tracks in there, which will then reference the... The Movies. And so what's happening on the QTSS is that every time you get a hit on one of these movies, it bumps a hit count.
Okay? And then there's a special URL, popular, you just have to click that, and that will let you just play the top three hits that everyone happens to be listening to. So the idea here is that on the server, you can just save information, but even from the streaming server where the data really is just lying there.
So that's cool. So, and you'll learn a lot more about that if you go to the streaming server session later in the week. So the last demo we want to show you is one that's called QT Chat. Some of you may be familiar with a guy named Matthew Peterson. He's a researcher up at Berkeley, and he has created some outrageous applications using Live Stage Pro and CGI scripts. This is a complete chat program built in a QuickTime movie. This whole thing is a QuickTime movie. In theory, it's online.
So what's happening here is that he's using wired movie actions to be able to send messages to control the interface, and then Some of the interactions end up involving constructing these URLs which encode all the information that's relevant to the chat back to the server. And then he's built a little server program that manages the membership and manages distributing of the media back out to the clients.
So the client refreshes itself every so often and picks up the text. Pretty wild. When you start to see stuff like this happening in the context of a QuickTime movie, you start to realize how powerful these simple concepts become when you pull them all together. Yeah, okay. So let's go back to the slides.
So we've got three sessions that will cover the technologies we reviewed today. We've got the server technologies, one-- He's back. He just came back. Web Streaming Session and a Streaming Server Session all on Tuesday, all in the Civic Center. So, before I wrap up, I forgot to mention one other thing.
The folks at Apple in the technical publications group have been working really hard to support QuickTime over the last couple of years. And they've just finished up a new book that you might be interested in. It's called QuickTime for the Web. I think it's probably available over at the Developer Depot. And I suggest you go check it out. They've been working real hard and they've got a lot of new stuff coming out to support QuickTime.
So, to wrap up, the ecosystem is really vibrant. There's a lot going on here. We went from nothing in this space to an incredible amount of activity in just one year. I can't wait to see where we're going to be in another year. QuickTime remains the premier platform for content creation and delivery. And we've got a new release coming this summer. You saw some of the cool features in the keynote. And when we start the seating program, you'll see a whole bunch more. Thank you very much for coming. Thank you.