WWDC2000 Session 302
Transcript
Kind: captions
Language: en
please welcome ian ritchie well hello
everybody and welcome to WWDC I always
look forward to this conference every
year the whole quicktime engineering
team always puts a lot of effort into
we're going to be showing you a lot of
different ways to use quicktime and also
have a lot of fun with it night is I'm
encouraged that so many of you made it
safely across the street to come over
here and join us in the Civic Auditorium
ok so this morning when you got up or
most mornings when you get up you find
yourself gravitating over to the
computer turning on your browser perhaps
much to the chagrin of your wife or
children and checking out your
customized news page mine happens to be
an excite that tells me what I'm
interested in mostly in technology some
of the sports the basketball playoff
follow that absolutely no horoscope is
on my page and and yet my sister goes
out to a web page and I think all her
all her pages is astrology and horoscope
and you know kittens and these types of
things and news for the weird so
basically what's going on in these
situations is unlike the early days
where I de las a web page and it'd be
the same thing every day I go back to it
even a few minutes after that it go back
it's the same and nowadays I can come
back to some of these like excite or
Yahoo Microsoft they have customized web
pages that change with me every time I
change for me every time I come there so
I'm going to go back to these sites more
often because it's a better experience
for me so the way that you've set up
your own custom pages and your
preferences for your own experiences on
the web we want to show you a little bit
today how to do the same thing with
quick
so that your multimedia experience for
yourself or for your clients is much
more beneficial okay so I'm sure
everyone here is played movies from the
web typical response as you go out and
click on one of the trailers or click on
a page and a request is sent from your
browser or from quicktime player after
the server hey I want this movie and
then it plays and everything is really
good and that's the end of that
conversation sometimes you'll be using
CGI's and it'll go out talk to that
application it'll send data down and so
we're gonna go through some of these
techniques that on the server side of
things and somewhat inside of movies
that you can not necessarily tricks but
techniques and the technologies that's
there today so you can take advantage of
it okay so let's look at a typical URL
this is what you stand up to the server
from your machine and first part let's
break it down when you're having a
conversation with someone else you
always want to make sure that you're
speaking the same language so the HTTP
is a protocol that we're using and we're
going to the server at apple com so we
know what machine we're going to be
talking to and then we'd also like to
know what file we're requesting so when
this happens we get the file back and
that's the end of the conversation ok
here's another very common URL using a
cgi common gateway interface whatever
cgi okay it's an application that's out
there on the server that's going to take
your request and do something with it
okay
so once again HTTP is a protocol that
we're using we're going at this time
with the search engine Google or the
search side and we're asking for their
search CGI application running on that
server to respond to the parameters that
we pass into them and so it will take
that it is just an application very
simple and it will run and then its
sense of fact something now usually we
don't know what we're going to be
getting back so let's look at a typical
request for a web page okay we send out
we say I would like my web page of HTML
and we send this information out to the
server this is what it gets and says
okay I now have the state i'm going to
send it to you but first let me tell you
what type of data it is this is HTML in
the form out of text and then you see
after the return the head and the meta
name and the rest of the following down
okay so we know how to respond to this
on the other side another request we
often get give and in this case it tells
us the image is a tight gift and so now
on the server on the client and we know
how to respond to that differently okay
so the idea here is that we request for
something from the server and then it
responds to us often in predictable ways
and often not let's go through some of
the requests and responses that we can
get I'd like to bring Jim Batson out
he's our chief quicktime architecture
longtime friend and the guy leading the
quicktime effort now
see okay so now we're going to talk
about things that relate more closely
with quicktime okay so let's skip the
redirect right now and go down to some
of the mime types now the first two are
common just binary versions of data that
will come down that you play inside
quick time there's video / quicktime
says it's a QuickTime movie please play
it image X quicktime is for image Kiki I
kind of files for time image format
files okay and there the other ones so
let's get the binary ones because those
are typically hard to generate from a
CGI script okay instead we're going to
talk about things that are more natural
to see GIS and the first one is a
redirect okay where you go to one place
you jump somewhere else and the other
three are text types there's HTML plain
text and smile file going to go over
those individually so let's take a quick
look at what a redirect looks like so
what'll happen is you do request and in
the head of the request you'd say I want
to go some player specific on this file
from the net in this case it's from you
know quicktime com imagine we're calling
a TGI random movie got CGI and we set it
the parameter genre comedy and then a
redirect to just come back and say well
instead of company in you know instead
of the URL use originally thought go to
this one this case you know a movie
about with Laurie Anderson so how does
this happen in an HTML request first
there's the request and in that is once
again here my web page HTML and what
comes back is a 302 redirect which is in
the header of the response and here we
can see there's the location and it
doesn't have to stay on the same webpage
excuse me the website or server it can
go totally somewhere else in this case X
wavy.com and different file name
okay so we're going to show an example
of redirect here okay first I'm going to
go ahead and get them on machine one
great thank you okay i'm going to just
open a URL and i'm going to drag off
here and so let's look at that request
first of all issues p here's the server
and here's the cgi you arrive running
which just happens to be on this machine
here and here's the parameter to that so
it sends it and redirects to this movie
we'll play it elite hearing has to be
able to take responsibility without
letting it turn his head our some
sellers when given a little Authority
they seem to change some in one way
summon another okay so let's open that
same URL again I'm get redirected
somewhere else I know dear but I'm
thinking of something else too and take
a little conspiracy conspiracy a nice
little conspiracy yeah of course we can
just keep doing that over and over again
we'll just get in on a movie this
contemporary home shows how modern
asbestos materials can be adapted to any
style or design notice now the asbestos
cement sidewalls help add dignity and
charm so back to slide please so
hopefully I was informative as well as
[Music]
entertaining back to slide please
so let's talk a little bit about the
text I'm texting text days of contact in
the form of HTML okay so HTML is the
format that you get data for for web
browser so how does that relate to
quicktime well quicktime will play
inside a web browser through a web page
with h RF tags or embed tags and embed
tags are what you use to actually embed
a movie right in the middle of your web
page so you see that all the time right
you go to movie trailers you play movie
that will come down so the standard form
of the embed tag is embed source equals
and in this case the name of the movie
hip move okay so what can go wrong well
quicktime has to get the movie has to
get the data in order for us to actually
see the moving plate and hopefully life
is all good but unfortunately that's not
true put in all cases there are two
reasons you might not get that one is
that quick times not install at all and
the second is that someone's hijacked
the mime type okay in the ville users
machine's not properly configured and
instead of a quick time getting the
movie video / quicktime then goes jumped
off to some other application i can't
even read that movie so let's think
about that let's pick a look at solving
that first problem how do you check for
quicktime on your pages first thing you
can do is use run some javascript okay
you have to figure out what OS am i
running on so your choices with mac or
windows if you're on the mac then you
need to check the browser okay and then
if you find out you're running netscape
or ie5 then you can run some javascript
to check for the plug-in and then if you
have plugins there you know you've got
quicktime installed it's not there quick
times not installed now in the case that
it's not I e5 or some early version of
ie you can just assume yes on the mac
platform okay because the other choices
just say well I don't know what to do
now in Windows slightly different
situation on Netscape you do the same
thing you can run some
to check your plugins it's kind of cool
at the same technology work technique
works for both but not for ie okay so
for I e on windows what you have to do
is until quick time for 11 so you were
kind of out of luck okay because there's
no way that you can really see if
quicktime was installed with 411 we've
shipped a an ocx called quicktime check
which you use to invoke actually
instantiate it from a vbscript and call
it and that will do the checking for you
and it will return that well quicktime
themselves or not so this is answer the
question is quick time around at all so
the next thing you have to do is worry
about is a configured okay and there
really isn't a great solution in terms
of making sure the machines always
configured for QuickTime so you can just
use source equals movie and the problem
is that there's no real web etiquette
for mine patent you know mine type
management what will happen is that
whoever installed last wins so the
solution we have is kind of work around
the problem by using a file type that
you asked for which at this point anyway
no one else it has hijacked so that type
is that QPS file that Kiki I file please
okay so what's happening if you look at
the embed tag is that you say source
equals you know some file name cutie I
now this file doesn't actually have to
be an image it could just be zero length
it just has to exist on the server and
then cutie source in this situation then
the plugin will get it and then with the
Qt source added to the embed tag
quicktime will play that movie so now
that you've been able to actually make
sure quicktime is going to be invoked
with your bed tags or some interesting
things you can do there's a whole list
of different kinds of things you can add
you in bed tags but one of the cool ones
is QT next so the first example here is
it allows you to chest chain movies so
you can easily put together a little
page at then we'll play movie 1 2 and 3
and stuff
there's all sorts of things you can do
and the second example is where you say
doing the same kind of thing I'm going
to start with an intro movie okay and
then I'm actually going to call CGI
which will generate a random movie okay
and then the special interpretation of
go to one will then go to reload GT next
one so will happen then is then we'll
just play the movie again but this time
since we're using a CGI that we just
showed before you get a long-playing
infinitely long playing movie inside
browser we go back it goes to demo one
please so first let's look at the HTML
page and here it is standard kind of
HTML looking a little bit light for
anybody and here it is here's the source
we're just using cutie I to make sure
that quick time gives chance to play the
file and here's a real movie it's at st.
CGI were using before and one thing to
note is that width and height applies to
source and QT source if you're in the
situations that quicktime isn't there
the source file will try to play in fact
little happiness you'll get a broken
icon that's why it's really important to
make sure that quick time for is
installed on that machine and this will
just reload QT source so go and play
that in the browser
this is the American dream of freedom on
wheels an automotive age traveling on
time saving superhighways futurama's
free-flowing channels of concrete and
steel for while metal coins are handy
for dealing in small amounts of money
when transactions require larger amounts
paper money is far more practical a
five-dollar bill for example is much
easier to handle than say five dollars
in time and just imagine buying
something that costs a hundred dollars
and paying for it with 10,000 cents
important information for all keep in
mind back to slide please so let's go
back to some of the other types of we
talked about that are really applicable
to see guys because they're textual in
nature and the next one is text a plain
text that will come down this is very
similar to just having a text file on
your local machine that you just send
open with quicktime player quicktime
player will import that file and just
show you the text it was a first kind of
started for doing subtitling and but the
text can be styled have colored size and
do other interesting things and actually
hands back up to show us because he's
the master of old texts I remember a few
years ago I met a bunch of developers at
a conference and they said oh you work
on quicktime that's cool Oh tax huh well
someone had to
and I tried to feel good about myself
actually there's there's an awful lot of
text in everything that we're doing with
the internet these days so there's
almost a resurgence of text inside a
quick time and some of the stuff has
been laying dormant there that you can
take advantage of let's show first a
simple text file with simple tags and
let's open up quicktime player and
import this file and typically what you
get is the 12-point Helvetica tags you
know you can go from one slide to the
next and typically we used it for closed
captioning or for subtitling your text
but you can go in and add a lot more to
the text up here it's a little bit
complicated but you can treat your
simple text file and export it with a
text descriptor setting and all this
will play out for you and we also have a
web page up that will show you how to
use all the texts descriptors but the
idea is I took that same text that we
had and we went in here and we added
different sizes like we can make this
one no make it really big and then you
can change you know the text color we
can make it all red so then when we take
this file and import it into quicktime
again
it just takes on the attributes of
whatever you put inside the text file
the great thing is your CGI can
automatically generate text real easy
and in format and pass it down into
quick time and it can be embedded as
data or it can be tagged as of type move
and we'll just play it automatically as
though it's a movie you'll see more on
this later being used in the web objects
demo each one of these have URLs
associated with them so if you click on
them it will go to various URLs or in
this case going to weblogic CGI which
you'll see more on that later hey Jim
slide please
okay now we're going to move on okay now
we're gonna move on to small file okay
the other types of files that come down
for you is that's really useful in the
context of CG is and server side stuff
is file because smile allows you to
compile to create presentations where
you can compose the temple data okay so
you can play movie after movie or image
after image or layout audio tracks in
any order that you want and also
specially for image related things so
let's take a quick look that at the
structure of a smile file or you know
anything about HTML this looks pretty
familiar too smiles xml-based and thus
has pretty related to HTML we see
there's a head and a body inside of a
smile document and typically in a head
you'll have a layout area which
describes presentation area there's if
there's no visual aspect of it there you
don't need to have a layout area but
there's a route layout which defines the
complete enclosing area and then you can
then you have to define regions inside
that route layout that you have images
or videos play into okay and so what you
can do is you can have one route layout
and create a bunch of different regions
and then play into them now inside the
body portion is where you say what media
are going to play okay and in this case
we have a couple of videos that are
playing in sequence the default in the
body section is that this is a
sequential playback so first intro that
move will play then main Google Play so
that's an implicit sequential block if
you want to make it explicit you just
add the seek to the Sikh tags and once
you have this section of see cuz it
becomes like its own block so I'll
become evident later now if you want to
do something where you do things in
parallel use of pair tags here we have
an image picture.jpg that's being
displayed at the same time or playing
audio and instead of using image or
audio you could
put in a block of sequence of Sikhs of
the sequential section and just play
another sequence of stuff so going to go
to demo and do a quick sample of smile
and depending on what state I'm in no
more of the line okay so here's a
relatively complicated one I'm going to
go ahead and tear this down a bit and
just create something which is a little
simpler to start with one thing you is
kind of interesting with smiles that
anything that passed the / smile tag is
supposed to be ignored so we can go
ahead and throw a lot of stuff away and
what I want to first show you is kind of
like a very simple document that's all
it's going to do is play some audio if I
just say that I can open it and can play
it
[Music]
of this section you'll notice the
chapel's change over so this is one way
to set up the slider inside of a small
document and let's go back to the
full-blown thing here before and what
we'll take a look at this there's a lot
of these extension tags will talk about
in a minute here's the layout
information in the head section using a
meta tag here to give it a name and we
he just have one region for an image and
here's the image down here so we have a
sequence of audio tracks and then in
parallel we going to show an image I
want to save it go back out drop it on
quicktime player and here we have
basically an album cover with the tracks
in there you can use the chapter tracks
to go between so this go back to slide
please
now there's a basic layout of ordering
your media and putting them on the
screen and also just in time quick times
added some extensions to smile which we
find really useful for doing quicktime
presentations and how that gets
expressed in the smile document in the
smile tag at the top as we have this
xmlns which means xml namespace and
you're saying of giving it a name here
cutie and just but and then you have
this URL which then specifies that
extension explicit uniquely across
different presentations so between any
smile files now the cutie is something
that you gets to make up by
conventionally just always just use
cutie but you can make that foo and then
when you use that down below and like
for the autoplay so saying cutie colon
autoplay could be food colon autoplay
and so what are some of these extensions
there's some attributes that apply to
the root which is to the whole
presentation there's autoplay which says
when i open the movie as soon as you can
start playing it okay there's next which
is just like cutie next that we saw in
the embed tags for HTML pages there's
time slider which lets you control
whether to use the time slider because
sometimes depending on the kind of
presentation you put together with a
smile file you've seen this line at the
time slider is a very confusing is very
erratic and so you just don't even want
to see that the things we've shown today
or you know they make sense you can see
the time slider but sometimes they don't
and there's chapter mode that says when
I give me when you give me a time slider
give me something which is for the whole
movie or only show me the slider for
when I'm inside this chapter so I'll see
when I'm at the beginning and end of the
chapter when I go the next chapter I'd
go back to the beginning of the time
slider also media attributes that you
can set which you can have our attached
on base in Chapter attached time base is
used when you have something like a
sprite
of your wired action movie that you
don't want a time base attached to it
okay because then I'll just confuse the
movie and there's also chapter which
allows you to find what the chapter name
is and that's how the pop up that's the
pop up but the chapter names work in the
controller in the previous example you
can also do anchor tags so that you can
click on an area and then you'll jump to
you a URL and the other various one is a
target of QuickTime Player that way
wherever this movie is played if it's in
the browser or your email app or
whatever if you then click on it and
then you launch go to a URL will open it
in the quicktime player okay will show
this a little bit more smile
here's an example which actually defined
three different regions and put in so we
have left half by top quarter right
bottom quarter and then if using h RF
tags and this is all shown in parallel
so when you play it you can see that you
have the three regions and these are
actually click throughs to those places
so we click here we go to page
okay critically low 101 okay so and then
finally I want to show you an example
it's kind of ties us all together with
we are both client here's a smile file
but there's something might not expect
what this is an example where kind of
pulls all these different things we've
been talking about together the small
file is actually just laying out to
movies okay this bottom portion of the
movie is a wired action movie and so I
can click on the button and things
change notice that every time I get to
play a new movie comes up so that's
actually using that redirect technique
by asking a that going to the CGI and
say give me the next movie and let's
play you can increase your profit you
can bring many potential customers into
your store you can add dollars to your
volume okay so the interesting things
with this guy is that we've got these
thumbs up thumbs down button so you say
oh I like that movie which then sends
another CGI request is the same another
request of that same CGI which will then
tell us how many other people like the
movie okay and this is actually coming
back in a smile form with some embedded
text which gives us from formatting
capabilities and some colorization of
the text okay so we can go next one
[Music]
well that that was kind of boring sorry
okay so we'll go ahead and and click
here and you can see that it's live by
well with the only one that washer so
let's pretend we liked it this time so
just click here and it loads it again
and it just changed okay back to slides
and I think times begin as you've
noticed over the last few years and in
particular in this session quicktime has
taken a lot of steps to take advantage
of people being connected to the web and
here at WWDC the web objects team has I
believe 18 different sessions going on
and we're lucky to snag one of their
engineers to come show us how they've
written some smile export components and
tied the game with labs objects and
interact with QuickTime it'll be more of
this shown in tomorrow's interactivity
session but we ask them to come give us
a glimpse here so if you could welcome
Ron loosing webobjects engineer
thank you so I started off with web
object and wanted to hook it up this
month to a quick time using smile and so
I wrote a simple little framework semi
simple that actually brings all the
power of web object and all the power of
QuickTime together using smile so I
could there we go so just putting them
together we have this we have what i
call client-server movies so what I want
to show you is how I got what objects
talking to quicktime without necessarily
using any smile but generating quicktime
compatible content some of the Qt tech
stuff that that was shown earlier and
the point of this was to actually bring
some interactivity to the client just by
making the movies dynamic and talk to
the server whereas the web objects and
smile stuff that i did was kind of
geared towards generating the movie
dynamically versus having dynamic movies
two opposite two different things in my
mind so so let me show you on demo one
here my idea of making movies dynamic
see so I can get this one so I've got
live stage pro here demo version of live
stage and got a movie track and a sprite
track and if you can see here there's a
little icon here that's the actual
sprite the whole the sole purpose of the
sprite is to go out to the net and load
a movie the URL that it goes to actually
is the URL of the web objects app that
I've got running simple little thing a
lot of you probably know how to do this
already and
[Music]
and the cool part about this is each
time you click you'll end up getting a
new movie okay so an extra six well
thank you lovely demo okay so so I can
show you that i have my app running here
what should happen that didn't happen
[Music]
well okay what should happen is that
each time you click you bring up a new
movie it's similar to what was shown
before but talking directly to
webobjects demo errors no okay and back
with the slides though I can so that's
what should have happened there was
every time you click it goes out to the
web objects application the specific URL
that the sprite action just right
invokes or goes to is a trigger to web
objects to go into the database look for
all the movies with a shirt certain
genre and then oh okay back up a little
so I've got a small database here where
I put in some information about some
QuickTime movies that I've got on a
streaming server so things like the
title the artist duration of the movie
and URL on the streaming server to go to
could I have the slides back up please
so what web objects will do that URL
triggers some logic to go through the
database find all of the movies that are
pop rocks and pop rock music videos and
deliver one of those movies at random
back to the thank you back to the
QuickTime engine and so in live stage
let's see so for dynamic movies my idea
is that the user asks for the resources
and taught in talks with a server versus
dynamically making movies creating
movies dynamically on the fly where the
layout of the movie the resources and
movie change depending on some state
either user defined or something in your
business logic in the database time was
gay you know change of the moon all that
stuff so back on demo one and demo
actually demo for please thank you so
this is my web objects application the
main thing is there is a framework low
dude navigating windows beautiful so how
many of you are familiar with webobjects
actually well yeah very cool if you guys
tried connecting QuickTime in with
objects before how many yeah oh very
cool you're on the right track very good
so what I've done in my framework I've
got some code and some resources that
actually implements a lot of the
elements in the smile spec a lot of the
classes the route layout regions media
elements of the media objects and what
this lets you do is build an athletics
applications include this framework in
your web app and you're able to lay out
smile documents using our very cool web
objects builder so here's a video page
I've got here we go so do now the
unfortunate thing is because with
objects was kind of an webobjects
builders kind of geared more towards
originally geared towards developing web
pages the use of UI for xml isn't that
great but you can see here all the
elements that go into my smile movie and
what happens is a lot a lot of these
elements are bound at runtime two things
in your business logic on the app server
side so here I can figure out the
artisan title from the database what the
next song is the URL for the next song
and you get a lot of this stuff for free
with webobjects whereas you could do it
in cgi's normally you get things like
session management for free using web
objects you get things like resource
management connections for the databases
for free being able to tie in a lot of
really advanced technologies into the
cool quicktime technology that we've got
see second of this license thank you so
area so that's the whole point of trying
to use web objects to generate smile
content for a quick time using web
objects is your server side scripting
solution I'll actually have the
framework and a working example up on
enterprise at apple com / WWDC 2011
succession session for 11 if anyone's
interested for going further into detail
at how web objects is doing all this
stuff and a larger examples of using
QuickTime with web objects and plus
because web objects is now on sale for
ninety-eight percent off there's no
reason to not try it out you should go
out and he's all got demo versions of
love objects and once you pick up my
framework you should be able to try this
out I think you'll be very happy with
that I'll hand it over okay excellent so
when you think about it ninety-eight
percent off you know we're all going to
rush out by one right now just just
think of a gentleman that bought it
friday like yeah and that purchase
orders going to come through in six
weeks it's like a lot of explaining to
do i'm sure they'll figure it out so
some of us here in the quicktime group
have written our by Kevin Calhoun rotas
CGI with hypercard which is so you you
know some things that you can do today
was very I wouldn't say basic tools is
actually pretty expensive but a longtime
friend I guess is how you think Myra
card so you can see that tomorrow in the
interactivity session will show slides
afterwards for the road map but some a
lot of excellent things that people are
doing with smile and using QuickTime so
we look forward to that
and get in the hands of you guys because
we thought you know what in the in the
quicktime group we're sort of looked at
it's not the roll group the sort of that
connotation with an apple that you go
out and do your own thing and you're
thinking out of the box and you know we
thought we're a bunch of crazy and
somewhat sometimes clever individuals
and then we come across the gentleman
that's more crazy and more of a lunatic
than any of the rest of us on the team
this guy just takes quick time to the
next level man you're just insane I mean
it's great brilliant wonderful
definitely thinking out of the box and
this individual is Matthew Peterson
neurosciences from Berkeley and we like
to welcome him now to show us something
to eat and working pretty bright out
here I'm going to get suntan my back and
my neck Apple so um I'm going to be
talking about quicktime application so
i'm not going to be comparing quick time
to reel or windows media player it's
more on the same part as java and what
you can do a shock wave and and mostly
why am i showing you is just a bunch of
demos so what is it what is a QuickTime
application well here the clintus
quintessential desktop accessory is a
calculator so this is all a QuickTime
movie and it has these extendable
regions and can do tangent functions and
square roots so this is just so this is
also all what I'm going to show you all
the movies i'm going to show you we're
all done all created with live states
live stage pro and you can get it if you
want to do anything like any of the
stuff i'm going to show you so this top
today's topic is how to interact with
the server how about how does QuickTime
movies in
act with the server so this doesn't
really interact with the server but I'm
going to here's another little
application it's a little URL launcher
so let me launch up a webpage maybe it
won't come up
so we got a freeze here okay so this is
coming off of France so maybe it's a
little bit slow come on France are you
still there okay good so this right here
is a little clock and how does this
clock interact with a server well I can
set the alarm and if I close the movie
and I reopen it you should remember my
setting so it saves this into a little
cookie there's a lot of ways that you
can have a information in the movie save
either can be saved on the server saved
locally in a cookie file or it can
there's you can actually there's ways to
save things on little text files on the
local drive and I'm going to be getting
a little bit more into that and one
other way to pass information to a movie
is when we show you in here is there's
not very many ways to communicate with
the movie but one way is you can just
send to have a server send you a little
movie so in this in this one this little
this thing right here this is a this is
a movie that contains a bunch of sound
for each number and when i type in a
number here negative nine point seven
can we increase the volume for that did
you hear that I don't think the farm is
working here so Mia trailer numbers over
87.6 so this right here is this text
field this is a HTML text field and then
when i type in a number right here
eighty 7420 5.5 it requests a small
movie to be sent and that movie passes
information to this top movie which has
isn't is a bigger movie and
contains all of the sounds that and also
the logic to put the sounds together to
speak out this movie and this is
something a little bit more so this is
used in conjunction with this next thing
I'm going to show you okay that's
correct this right here is oops it's not
coming okay good so this right here is
data coming from my lab and UC Berkeley
and it's being passed into the movie
instead of another dumb I just showed
you the movie was being passed into a
little frame a little but you can make
that invisible frame but I let you see a
little blip of the QuickTime loading in
this one data is being passed directly
into the movie into a movie file instead
not movie file into a movie track and
the server just keeps on passing data
into that movie track in that movie that
data gets sent off to a local sprite
track which calculates the heights of
bars and it puts those bars up on this
graph and in this way I can monitor an
experiment from anywhere in the world
and in fact I can also turn off the co2
in my experiment and you can watch the
change of that instead of plotting
temperature i can change plot pulse rate
i can change the humidity and the stroke
and this is all movie this is all like
this a QuickTime movie and it can run
anywhere a QuickTime movie can run
next thing I'd like to show you is all
these things are little applications and
a lot of you maybe aren't interested in
having quicktime work as an application
but you are interested in having
quicktime show movies which is what it
originally intended to do and why would
you want to have all these applications
features in just a normal movie well
when I will show you here is something I
develop iphone and this movie is an
intelligent movie you haven't purchased
this movie yet and it so it knows that
and soon as you launch this movie it
says do you want to watch the preview
which allows you to watch or would you
like to purchase the movie so let's
purchase the movie it goes up to a web
page and I hope this was a lil bit
quicker this time maybe not so right
it's usually faster so right now is
launching a URL on my on my site and
it's going to give you a web a form to
enter in your credit card information
I'm going to take up my wallet real
quick and you can purchase this movie
and in fact the other movie doesn't even
have to be open in order for me to
purchase the movie imagine my name a
quick tour good number I my customer
okay purchase that and now my movie has
been purchased and now this machine will
be unable to watch this movie instead of
saying purchase movie it says watch
movie and now you can watch the whole
movie in fast-forward rewind change the
volume and things like that so this is a
pudding pudding application into just
gives you a DVD style movie and it talks
with the server says is this compute is
computer and able to watch this movie
and therefore we've implemented
pay-per-view downloads all within the
QuickTime applications all within the
QuickTime framework we don't have to
invent any new media type for any new
methods like Microsoft is doing all what
quicktime already has the ability to do
all that it's got all this wire sprites
in the ability to talk to service and
you can build custom novel applications
that other people have built before here
is something where a movie actually
returned something to the user so that
one the server was talking to the movie
was talking to the server to see if this
computer is allowed to watch a certain
movie and what I'm going to show you
right now is the server is going to
return a file to the user based on what
the user does so here this is a simple
drawing program let me just make a
little interesting drawing how's that
I'm not an artist there you go and then
when I click on this PDF button it
should load Oh stay file okay and I just
saved the file to my disk and that was
the drawing that I just have to Oh lots
of code lawyer okay so what up and
there's my going
so now
now a drawing is yes sure there's a lot
of things that can make drawings and
well not that many that can write PDF
files on the ship's distiller on it but
there are lots of drawing applications
why would you want to have quicktime do
your drawing well you don't have to do a
drawing you could design like a t-shirt
and you the person says oh I want my
logo here and I want this here or
greeting cook they want to have like
business cards made up and they said I
want my logo here and want my name here
and they can do though that within a
quick time within a QuickTime movie and
say click this I want that mate and send
you back a PDF say is this what you want
you say yes and they produce it in sent
it to you so there's a lot of e-commerce
applications for this basically a movie
can send something to the server and the
server can send you back a file and that
opens a lot of doors but why would you
want quick time to do that well
QuickTime has a unique property that it
is I'm going to make a new word that I
coined last year is probable it's the
most possible thing I've ever seen you
can take a movie you could stick it into
a PDF file you can stick it into a word
processing file you can stick into a web
page you can stick in all these places
you can't fix java application inside of
a pto maybe you can but not at a
standard Acrobat Reader you can't stick
Java in the PDF file you definitely
can't stick Rio and windows media player
you can't stick many applications but
all right so here is an example of using
it my drawing program in a real world
situation let's see where is
in this application I have you seen with
using at UC Berkeley I'm a neuro
scientist and I study how the brain
works and one of the things that we need
to do is we need to know where for
medical applications we know whether
we're a lesion is inside of a image of a
brain and there are people that are
experts at finding lesions in slices of
brain and so those those experts aren't
necessarily next door sometimes they're
across the country or across the world
and you'd like to send up a slice of
this cortex and say we're on this cortex
is a leisure wear where's the start and
where does it end and it's all these
people are often busy and so if you tell
them will you please launch photoshop
and draw on there where you think the
lease and starts and save this Photoshop
file and send it back to me you take
weeks to do that but here i just sent
this person a email and here they can
draw us as that Leeson started there
ended there this right here is the
border between area 17 and 18 that's
what you wanted to know if I made a
mistake you can undo it and say oh it
was really here and then submit it and
when I push that submit button it sends
the information to my databases and send
anything back since of information to my
database and automatically update
updates the database and it takes only a
couple of seconds and it's pushed
technology right inside the person's
email client
that's why you might want to use
quicktime to do application okay where
are we now looks like I'm going fast
that's okay so I'm going to get ok
another place you complete a QuickTime
movie isn't a PF file here's a PDF PDF
file for my friend Joe no walk who will
be entering the demo in a little bit and
he said ok I got your low lego robot
ready everyone knows what these Lego
Mindstorm robots are right who has how
many people here have one of these ok
cool you'll like the demo coming up so
he says I got it and when you're giving
this talk just page me and to page me
just click on this button and here's a
little quick time type of the thing so
Robo time and I just hit enter and it
says a page set and so this is a simple
little application that talks to the
server and basically it's using a little
email module that I have that I use with
quicktime so you can actually make a
whole quick time I mean email client and
quicktime if you want but here this is
just a little pager you don't have that
person can send you a like a technician
can send you little technical specs on
something and said if these aren't right
just page me and tell me what or like
just page me and tell me what your phone
numbers or something like this and put
that into a PDF file put them into a
word processing file or into the email
client they don't have to give you their
pager number and also I can have it so
that it only works one so you have one
time to page me and that's it and then
leave me alone
so so you're saying okay you can have a
movie talk to a server and you can have
a server talk back to a movie can't we
have interactive games in quick time to
people on different QuickTime movies
both talking to the service servers
talking and telling you what each other
are doing and sure you can't do that so
here is the this is not a game but this
is a little chat program that I made
completely done a quick time how many
people are on this jet nine people Josie
there's our TX Joe he's sitting on there
waiting for me to come see what
there it is bruiser didn't have much to
say so how is this useful well again
instead of putting a PDF putting a pager
inside of a PDF document you can stick a
chat these guys are taking over how do
we know they don't believe me what of
course yeah okay the audience says hi
did you say hi say hi so um you can put
a chat client in a PF thing or you can
put a chat client within a movie with in
a streaming movie a live streaming movie
you can have MTV could have this new
band replacing in sync and they're going
to have this new live video and you can
talk to them while they're performing
the video or whatever I get you little
perform videos but so this is a pretty
powerful thing and it shows that you can
have interactive movies that are more
than just a one user experience you can
have multiple people watching the same
movie and interacting they're using
color and one cool one cool so I'm going
to good bye guys so one cool thing about
this is that you can you can have custom
interfaces that are pull it pulled in on
the fly so when I click that info button
it pulled a new movie off of the server
and stuck it into that frame and this
movie can be anytime any movie that it
could be actually a whole nother check
client right inside this little frame
right here this is a movie in itself I'd
like to thank Brad Smith for helping me
make these nice aqua graphics and so
when I go back to the chat everything
should be still there alright so now
we're going on to the now the lego robot
demo
alright so here it kind of so I'm going
to close this I'm going to exit oh I
just love quick time thanks Joe okay so
I log off now I'm okay don't make this
any way so what I'm about to show you
here is going to blow your mind if you
guys like Legos like I do so what I've
made right here is a well I don't have
the whole interface here for you but
what we've made is a complete Lego
programming interface all within click
time so many of you know that when Lego
decided to come out with their fancy
mindstorms robot they said Oh we'll just
make it pc only and they came out with a
windows version of this lego thing and
on that CD didn't have any mac version
which made me mad this as one of the
first people to get one and I don't have
a windows machine I said I can't program
my Legos so I build a QuickTime Lego
programmer and it has all the same
function
and it's little buggy so I didn't put
the whole thing but I have pre to
pre-built movies very simple I didn't
want anything to go wrong so I just have
go forward on turn the motor on wait for
little while I'll turn off there's the
first movie let's try okay let's see
program one here it goes loading run
come on come on Oh out they're gone okay
it took a couple seconds maybe I'll
build kit what's he doing there okay he
says now he's dead because now Mac
people can play with the robots remotely
have to tell you that this this
streaming server is coming from Chicago
my friend Joe is in Chicago and he
helped me set this up and this robot is
also in Chicago obviously so let's run
that program again it was a little bit
faster so this shows that the program
download and it should get executed oh
there's who's that Janet Reno and now
let's go the other reverse direction
program food says turn the motor to
reverse on weight and turn off go back
again to Bill Gates okay so basically 10
minutes
the basic this is what I had to show you
and I hope that oak opens your minds a
little bit about what quicktime can do
and the possibilities and how you might
want to use quicktime it quick time in
ways that you haven't thought of before
and it can talk to a sliver and it does
it in a most awesome way Thank You MA be
great we didn't let you down did we the
guy's incredible and on behalf of at
least four quicktime engineers myself
included we ran out and bought the Lego
Mindstorms when it first came out and we
also have the box of sitting around our
office was going okay now what so that's
Thank You Matthew so to recap a lot of
what we discussed today you can find in
Steve Ghoulies book quick time for the
web I'm usually not a cell phone pushing
this but this is like a great book I
have a torn-up copy in my office that
was before I went to press and all kind
of pages all over it's quick time for
the web and this is just out yeah and it
comes with CD and examples in the bag
it's just wonderful highly recommended
so a few more quicktime sessions coming
up later this afternoon and tomorrow
morning there's actually another one
tomorrow afternoon and web objects like
i said every day all day in hall j you
know drop by pick up your copy
oh so in case you have questions about
this you I want to know more i'm all
excited i want to control my robot
across the country you know and maybe
make a submersible one contact jeff lowe
with the impressive title of quicktime
technology manager he will answer all
your questions and direct you in the
right path and thank you for coming
[Applause]
[Music]