Information Technologies • 53:37
As podcasting increases in popularity as an important new media-distribution channel, many organizations are evaluating how to create and deliver their content. Podcast Producer in Leopard Server provides the tools to capture, process, and deliver your content with the flexibility and scalability to meet the needs and challenges of this new medium. Learn what comes "in the box" in Podcast Producer, how to extend and scale your infrastructure, and how to change the sample media-processing workflows. Also, hear recommendations on how to set up for different types of environments.
Speakers: David O'Rourke, Nathan Spindel, Kjell Bronder
Unlisted on Apple Developer site
Downloads from Apple
Transcript
This transcript has potential transcription errors. We are working on an improved version.
Good morning. Welcome to 9 a.m. Thursday at WWDC, the finest day at WWDC. I'm excited to be here. My name is David O'Rourke. I'm the Engineering Manager for introducing Pod, for Podcast Producer, but I'm here to talk to you to introduce it. This is the tightest, funnest, and most concise 14 hour presentation you're going to attend at WWDC and I want everyone to pay attention. There will be two three-minute bathroom breaks, and let's get going.
So the agenda's fairly straight-forward this evening, or this morning. I was up late. Podcast is taking the world by storm for those of you who haven't noticed or have been living under a rock. A lot of podcasting going on. We're going to talk a little bit about that and set the context for this particular product. We're going to talk about how podcasts are produced today without this system that I'm going to be showing you later. We're going to talk about what's built into Leopard Server and Leopard Desktop that enables Podcast producing.
We're going to talk about a case study. The case study's very interesting to me because it's the canonical example that we've based the product on, so walking through that has helped a lot of customers and the engineering team stay focused and tight on what the product should and shouldn't do.
We're going to go behind the scenes. You're going to see some of the technology behind Podcast Producer, understand how it's put together. You know, how you can leverage that for your needs. And this product is ripe with third-party opportunities. There's a huge market. This is the first release of this product. A lot of people are going to be deploying it so for the developers in the audience, stay tuned to the latter part of the session. We'll be going over the developer opportunities. And lots of demos, and because it's a video, they're really cool.
Podcasting is huge. I ripped this slide off from my manager's presentation on Monday. They've redone the graphics but it's the same one. This is phenomenal. This is weekly downloads of podcasts up through 2006. So, podcasting is clearly a media format that's here to stay and the efficient, and the need to efficiently produce it, it's just off the charts.
So, where we stand today with podcasting is Apple, the industry, other platforms, lesser platforms, provide a wealth of tools to capture video. We've got Final Cut Pro, we've got iMovie, we've got Garage Band, we've got third-party utilities. Creating and capturing video while still a difficult concept is a fairly well understood problem at this point in time, at least in my opinion. And there's multiple ways to publish content. You've got RSS feeds, you've got Apple TV, you've got blogging, you've got QuickTime Streaming Server, you've got DVD distribution, YouTube, the new kid on the block. Just phenomenal.
And people are consuming media any way they want. They want it on their YouTube. They want it on their phone. They want it on their iPod. You know, people all have different media delivery needs. They want their media where they want it and when they want it. This is why podcasting is so useful. So all the pieces of technology exist today, so why do we need a product for this? I can do all of this. No problem. I don't need Leopard or Tiger. I can do this.
But, the challenge with all this is steps are mostly manual. I've been in the industry 18 years and for the life of me, I don't know how I would take a video and get it up on a website. I mean, I'm sure I could figure it out but sitting down is a very daunting task. All the technology's available but it requires someone even as knowledgeable as myself to follow a very complex process. You not only have to be an expert in iMovie, you have to be an expert in blog technology. So, from ingestion to publishing, it's very, very complex.
And processes like this are repeatable. I mean, I might be able to do this for three or four videos, but what if I needed to do this for 50 videos a day? What if I needed to do it for 50 videos an houPr? I mean, a manual process starts to break down there and it really, really doesn't scale.
It requires an expertise with a diverse set of technologies. You not only need to be an expert in video, you need to be an expert in web technologies. You need to be an expert in encoding technologies with QuickTime, and what if my institution wants to make sure all the videos are archived? Well, do I add that as a manual checklist that I hand out all the people doing this work? I'd like some sort of guarantee that my institution's standards and requirements are being met.
So, posting a Podcast Producer session, in my opinion these days, is largely hand, a hand-built exercise. We have all the tools but it requires a real craftsman and a highly motivated craftsman to put the product together. A bullet that I had from last year that a lot of people thought was kind of fun is it's about as automated as producing a car was prior to the Model T. So, I mean, there were cars prior to the Model T, but they were all hand-built and it required a craftsman. The Model T was the first scalable car that could be produced.
So, Leopard Server has Podcast Producer. This Podcast Producer fully automates the process of content ingestion and podcast production. We provide all the tools you need to do this. We provide remote camera capture and control. We provide the ability to do direct file submission. We provide work flows that can automate and standardize a process. We're going to go into that in detail in this session and we're going to go into more detail on the follow-on session, so stay in your seats.
We use standard server scaling technology. If you want to scale this system out you scale it out the same way you scale out your web servers, your file servers, or however you scale in your data center. We have administration tools that allow you to control, manage, and monitor the system, and it's secure end to end because if you're going to be capturing video you don't want the students interrupting the lecture, so you've gotta have security authentication and authorization, and we provide all that.
So, what is a Podcast Producer system? I mean, if I'm going to try to sell you one of these things, what would I ask you to buy? Well, it consists of the following components. A set of cameras from which content can be captured. We have one here on stage. Later on, you'll see that this camera's plugged into a Mac Mini. This is a camera machine, headless Mac Mini camera plugged in, a Podcast Producer clustered to process the video, accept and process the video. These are as many machines are your budget can afford.
Work flows to specify the standards and procedures that you want your site to apply to every podcast that's produced to the system or that's presented to the system, and servers and storage to host and publish the content. So, you've got your cameras on the front end. These are headless machines with digital video, with Firewire DV cameras plugged into them.
They will post video to a Podcast Producer cluster. After it finishes processing video, the Podcast Producer cluster posts it to other machines which are hosting the video. This is your web server. This is your content management system. This could be iTunes U. These other systems are the hosting destination.
And then you have the consumers that consume the content any way they want. They may view it on an iMac. They may view it in QuickTime through an email link. They may view it on their iPod, or they may just use iTunes, the iTunes application to play it back.
So, a case study, and this was the scenario that was presented to us when we were designing this system, is university lectures. Stanford, Berkeley, a number of institutions are starting to do daily, hourly. They're capturing the lecture videos and making them available later offline. So this is a very hot topic. A lot of growth. Universities are a deal for this thing because they're disseminators of information and a lot of them want to make that public.
So, what should you do? Well, deploy cameras in each of the lecture rooms. Have a facilities guy go around and put them behind plexiglass in each of your lecture rooms. What is a camera again? It's a Mac Mini with, or any headless computer with a Firewire DV camera plugged into it.
Let the instructors remotely start and stop the camera. If I was having a Podcast Producer system here in this room, I need to be able to control the camera in the back of room from this, from this podium machine up here. I don't want to walk back there to start the camera. I want to do it from up here.
And when the, and when finished, the lectures are automatically submitted to the Podcast Producer system. Work flows make them available to the students. The work flows down sample the video to whatever encodings you want. High, medium, and low is the example here on this slide but it doesn't have to be that way.
Audio's extracted for people that have an iPod Nano and they can listen to the audio only version of the podcast. Lectures are archived at the schools? Xsan or life cycle management system for future generations of students and they're automatically posted to whatever web publishing architectures you want to publish them to. So, an example in action, a lecturer walks in and launches the Podcast Capture application, logs in as himself, picks a camera in the back of the room, says Start, lectures for an hour, walks out of the room, says Stop, and then walks out of the room.
The cameras automatically upload the video to the Podcast Producer cluster. It chews on the video for however long it takes to chew on an hour's worth of video based on the complexity of your work flow. Chews on it, chews on it, chews on it. It then publishes it to other servers which will then host the final results. Are we posting the high quality digital video to these servers? Not necessarily. The work flow may have archived the source material off and that will never leave the cluster. The work flows are under your control.
And then students consume it through whatever mechanism they have available and whatever mechanism you make available. But that's a really sucky slide. Nah, actually it's pretty good, but I'd like to bring Nathan Spindel up here on stage and actually show it to you because it's much more compelling. Thank you.
( Applause )
Good morning. I'm Nathan and I'm an engineer on the Podcast Producer and Server Administration Team, so what I'm going to demo is what we did in Monday in Welcome to Leopard Server session and go a little more in depth. Ah, could we go to those slides? And some of you may have recognized me from Monday when I was dressed up as a professor.
So what I'm first going to show is as a professor how you'd record a video podcast and then I'm going to switch hats and show as a student how you would consume a podcast. So, let's say this machine is our podium lecture machine and at the back of the room, we have a Mac Mini with a DV camera connected to it. So, I walk up and I open up Podcast Capture, which is the application for easily ingesting video into this system and it's installed on both Leopard Server and Leopard Desktop.
So I type in my log in and this integrates with Open Directory so this is my campus log in that I use for other services and I click Connect. And here I'm presented with four different kinds of podcasts I can make. For now, we'll do video and we'll come back to the others in a minute.
So once I click video I can choose which camera I want to record from. These are limited by access control lists and as a professor I'm only limited to the rooms that I wouldn't normally record in, and as you see, we'll get a static preview that's updated every five to ten seconds and the reason we don't do streaming is because we want to do low bandwidth because a lot of universities said they couldn't support full streaming video. And that hasn't updated yet, but we'll record a video now. So we click the Record button and it counts down.
Never before has podcasting been this easy for professors and students. And then we just click Pause. At this point, we can resume the recording if we want, if we wanted to take a break in the middle of the lecture, but we'll click Publish. And so here are the last three pieces of information we need to provide, the work flow, the title, and the description. So, the work flow is a set of actions that happen once the media files submitted and these can be set up by your IT person. So, as a Biology professor I'm only allowed access to three work flows. So I'll choose Human Anatomy.
The title is Foolproof Podcasting, Podcasting from WABC. And at this point I clicked Done and I'm automatically logged out of Podcast Capture and I can walk away. We designed it with kiosk security in mind because we found that a lot of universities podium machines have kiosk accounts, so a shared log in that everyone knows, and we wanted to design Podcast Capture that when it's deployed automatically has kiosk security. So, as you know, when I click New Podcast, I'm asked again for my user name and password, and this is mainly so that if after a professor's done a student can't go and upload naughty videos.
And also, note that in the Podcast Capture preferences you can set automatic log in for a personal machine. So these are the four types of podcasts we can make. As we showed, we did video. You can also do audio only for lecture halls that don't have video facilities, and the third is screen recording which is really fantastic. It records a video of your Mac screen and then sends that to your students.
This is great for full screen Keynote or PowerPoint presentations and you can also do an audio track over it. And finally, there's file upload. If you already have a movie file like a TV clip or something made in iMovie, or something made in your existing professional video system at your university, you can record that.
So, that's Podcast Capture in a nutshell, and now I'm going to switch over to the student account and show how you can adjust the podcast. So Podcast Producer's fantastic because it already publishes to iTunes, it already publishes to iTunes U, as well as the new blog on Leopard Server which can also be subscribed to in iTunes, and so students already know how to use iTunes on the iPod.
So in our student account, I'll launch mail that up to see if we have a new podcast available. Our work flow, our sample work flow already does email notifications, so you see I've got a new podcast from myself, which is a little strange, but it says the title of the podcast, the time, and a link to subscribe to it.
So, let's click on the iTunes U link. Those of you who don't know, iITunes U is a free service provided by Apple for high quality university content. It's extremely popular. Berkeley and Stanford are joined up with it and there's a session later this afternoon on it. So here's our Apple University iTunes U and these are the nine courses available.
We'll click on Biology 202 which is the work flow I chose earlier and you'll see here are the four podcasts available. We haven't yet subscribed to this so I'll click Subscribe and you can see it starts downloading and now as a student, I'm subscribed to this podcast. Whenever a new episode is available it'll automatically be downloaded and we can sync it with Apple TV, iPod, and soon the iPhone. So, let's watch the video.
Never before has podcasting been this easy for professors and students.
( Applause )
- And as you saw, our sample work flow has a beautiful intro and outro using Quartz Composer and it's been watermarked with our university's logo and as well as the titles where it was shown. Let's look at it again just to see. Note the reflections on the bottom.
- Never before has podcasting been this easy for professors and students.
- And this video post processing is fully customizable and we're going to talk about that later on in the session. Back to you, David.
- Thank you, Nathan.
( Applause )
Can we go back to the slide machine, please? We have more demos. They get better. So, all of this offer that you just saw is built in to Leopard. You don't need to purchase anything other than Leopard and you yourself can deploy this system. So, Podcast Producer like Apple, all of Apple's things is an integrated set of software and hardware and there's a set of desktop software and there's a set of server software that's been integrated to work together in a seamless manner.
On the desktop, we have a new agent that we call the pcast camera agent. This is the process that remotely listens for the Start and Stop command. It's very similar to turning on personal file sharing or SSH. We have a podcast command line tool. We have the Podcast Capture application. The podcast command line tool can do anything the Podcast Capture application can do, therefore, in fact, the Podcast Capture application's just a Cocoa wrapper on tool invocations.
We have a new Podcast Producer server that I'll go into some detail later. We, of course, have server administration, and we have a wiki and blog server that's a built in destination if you don't want to use our wiki and blog server to host your content. And we have work flows. And we've added video commands to the command line architecture of Mac OS X that allow you to do basic work flow operations that are common for video. We'll be going into that more later, and publishing commands, and it's all based on Xgrid.
We leverage a lot of existing technologies for Podcast Producer for your name and password authentication that you saw Nathan use. We use Open Directory, we use Server Administration. If you want a scalable file system, we have Xsan. We use Kerberos to authenticate the whole thing end to end, and a lot of other server technologies. So the desktop technology consists of camera recording software. The camera recording software uses the server for authentication command and control. The camera machine will not do anything without the server's explicit written permission.
There's remote Start, Stop, and Pause. You can up, the camera machines uploads the finished videos to the server when it's done and the camera machine's then ready for its next recording. The camera can upload one video while it's recording another. This allows you to schedule back to back lectures, so while the next lecture's being recorded, the previous lecture's being uploaded. We've designed and tested the system to run on low end headless CPUs like Mac Minis as an ideal and canonical camera deployment.
There's the podcast command line tool. This offers complete control over Podcast Producer. Some people who've seen this prior to Leopard have already scripted chron jobs that like start a camera, record for 15 minutes, then just do that every 15 minutes and submit to a security work flow. So you can control cameras, work flows, job submissions, and joining cameras to the servers, so you can automate any action of the entire system with some very simple shell scripting.
For those of you who have Leopard already installed on your system, not that I want you to ignore my presentation, but you can type Man pcast in the terminal right now and you'll see a full man page. And there's a Podcast Capture application which Nathan just demonstrated, and this is the graphical front end for people that don't know the command line for controlling the system.
Server technology. There's a new server process running in MAC OS X server. This server is the conductor or coordinator of the entire system. It keeps the camera database. It keeps the work flow database. It submits work flows to Xgrid and monitors their progress, and it maintains security tokens for the entire system. This is what keeps it secure and this is the command and control infrastructure for the entire computer system.
We leveraged several Leopard server technologies, web and blog content hosting, email, you saw email being used for notification. We used Xgrid for scheduling and work flow scale and you can use Xsan or NFS for the shared file system for the grid so that you can put all the video in one place and not have to schlep it across the network multiple times as the work flows are working on it. And we, of course, have full integration with Leopard Server administration. I think we have a demo of that later, do we not Kjell? Yes, we do. Thank you.
I want to take a slight aside and talk about Xgrid. Xgrid is the heart of Podcast Producer and Xgrid is Apple's large scale computing architecture. For those of you who aren't familiar with large scale computing, perhaps you've heard of SETI@home or Folding@Home. Xgrid allows you to deploy your very own distributive computing system in your lab.
Podcast Producer work flows are Xgrid jobs and this is why we feel the system scales because you can add notes to your Xgrid and do more jobs at once which allows you to process 50 videos an hour. Xgrid is built into Mac OS X desktop and server. It can be used to schedule complex jobs across many CPUs.
As the jobs are run, Xgrid is dynamically figuring out how many CPUs are required to complete this job and if there's an idle CPU in the grid, it will say, Ooh, there's someone out there I can go and grab. I'll go put a job out on it. So, parts of the job are farmed out to idle grid CPUs. If none of the grid CPUs are idle, Xgrid waits patiently for one of them to become idle so that it can schedule the next part of the job.
This allows work flows to scale infinitely. If you start with a four node cluster and it's not quite processing the videos fast enough, you can transparently add another four nodes, bring them online, and without even shutting down, the Podcast Producer system will start using those idle CPUs on the very next job submission.
Podcast Producer work flows are Xgrid job descriptions. How many people here are familiar with Xgrid, please? If you know how to write and Xgrid job you know how to write a Podcast Producer work flow, so work flows are Xgrid job descriptions. So, all Podcast Producer work flows inherently scale. If you add more CPUs to the grid, your Podcast Producer system can handle more videos being processed at once.
This allows you to scale the system to meet your video demands. As that chart showed earlier in the presentation, the podcast downloads are going through the roof. As your system, it's a system you buy today doesn't match your needs you can incrementally add to the system later to, as your podcasting takes off at your site.
Work flows. These are another, these work hand in hand with Xgrid and therefore are also the heart of the system. Work flows are the heart of the Podcast Producer system. They are simply scripts and descriptions of what you want done with the video. This is how you automate your processing.
Anything you can figure out how to code up in a shell script could be very easily turned into a work flow, therefore for your work flow processing system you could conceive of a UNIX shell script that would do all of the steps. You can easily transcribe that into an Xgrid work flow, install it on the Podcast Producer system and now that's a new work flow for your particular site.
Work flows are Xgrid job templates. They're really Xgrid jobs with the filename left as an exercise for the reader. You know, that's the part that the Podcast Producer system provides only after the final video's been uploaded. Xgrid jobs are simply scripts that decide instead of command line tools to execute.
This is a sample work flow. It's been grossly simplified because Xgrid job templates are XML and that's a little hard to read, so think of this as pseudo code, but in concept this is what a work flow is, so I'm going to take in a movie and I want to add a watermark to that movie, so I have an addwatermark command in my script that says original movie, mylogo, and outputs a watermark movie that I'll use later in the work flow.
I then want to add my institutions introduction video and exit video so I have a join movie command that we're providing and it then allows me to concatenate multiple movies together in the order specified here in the parameter list. That will join an intro video, a watermark, the watermarked movie that I made in the previous command and an exit video. That produces full movie. Now this is where the grid comes in.
I now encode that movie to four different encodings simultaneously. If I have four idle grid nodes on the system, all four of there'll be executing in parallel. If I have two, only two of them will be executing and the next two will be waiting until the first one finishes. So, all of these actions happen in parallel on the grid when you write your work flow.
After I've encoded all the video, I'm going to post the video to my various locations. Again, none of these operations depend on each other so they can be done in parallel. If I have more grid nodes in the system and these commands execute, the very next work flow's already being processed on the grid, the work flow behind this one.
So the grid is constantly busy and constantly being optimized to having all the machines in use so that your videos get through the system as fast as possible Again, if your system's not big enough to handle the load, adding Xgrid nodes will make it big enough to handle the work flow load and there's no need to buy a new system.
Filled out. This is just a sample of some of the new command line tools that are present in Leopard to support work flows. The first column, we have editing. We have a merge and join tool for merging and joining QuickTime movies. We have a titling tool to allow you to add titles to movies. We have a watermarking tool that lets you add watermarks.
QC Effects we'll be going into later and in the following demo. We can trim and split the movie. What if you want to trim 10 seconds off the front and the back? We have an extract and a track. For those of you who are not familiar with QuickTime everything's a track so we have track manipulation tools since everything being processed through the system is QuickTime. We can delete a track and we can add a track.
Perhaps you want to add a secondary audio track to your videos. You can do that in a work flow simply with the Add Track command. We have encoding tools, adding QuickTime annotations, set the poster frame, encode for a particular destination, iPod, Apple TV, 3GPP, extract the track so that I can add it to another movie and delete a track. Delete track's been duplicated there.
Publishing. I can publish to the group blog, I can publish to QuickTime streaming server, I can publish to iTunes U, I can send an email notification, and I can publish to an iTunes podcast. These are the commands we provide. You can write your own shell scripts or your own command line tools to extend any one of these aspects. These are just what we're providing for you. And then we have some utilities, a pre-flight utility, a post-flight utility, archive, and copy. So these are just some of the command line tools that've been added to Leopard to make work flows more easy.
So let's go over the process again. So the professor submits a work flow to the Podcast Producer system, it receives the video, and after it's done receiving all the video it queues it to Xgrid using the Podcast Producer work flow running on an Xgrid cluster. The Xgrid cluster chews on the video.
While it's chewing on it it'll add transitions, watermarks, an intro and exit video, might do some text to speech or anything else you want it to do. Video encoding. It will then encode the video to as many different outputs as you want. If you don't want to do video encoding don't make it part of your work flow. If you do, you can add as many encodings as you like.
After we're done with that, the typical result would be to copy and publish the results to other servers on your network or out on the Internet. Again, you encode these steps into the work flow and once they've been published, your customers can now consume the data by downloading the results or watching the stream from the servers you've published to.
I'd like to bring Kjell Bronder up on stage right now that's going to give you a little bit of a behind the scenes look at Server Admin and I believe go through a brief demo. Thank you, Kjell.
( Applause )
- Demo, Demo 2 or Demo 3?
- Let's start over here.
So, as they said I'm Kjell Bronder, I'm an engineer on the Podcast Producer team and so Nathan went over more about the end case, the user use case scenario so I'm going to take you a little bit behind the scenes and show you how to administer the Podcast Producer. So I'm going to log out here the student account and we're going to log in as the podcast admin. So, for most services that any administrator has to set up, you're usually, use Server Admin and we're going to use Server Admin for Podcast Producer. What a surprise.
And so here we're going to connect to our rack over here and you can see that for Podcast Producer before I even start talking about the Podcast Producer service there're several other services, underlying services that Podcast Producer needs to actually run. So we're running an open dir, we're running some open directory servers over here so we have an open directory master and a replica. We're running a web server and a mail server and we're running Xgrid. As David said, Xgrid is the engine behind Podcast Producer. So let me just cheat here real quick. So this is where I was supposed to have a joke.
( Typing )
And did that work? So we're going to, so we're going to refresh here. Let me try it one more time. There we go. So we have the Podcast Producer service here. The overview pane, we get some status about the different cameras that are bound to the server so these are the remote cameras like the Mac, the camera that's bound here to the Mac Mini. We have some information here about the Xgrid and the shared file system.
So I'm going to jump straight here into the settings. So there's a shared file system. This is the file system that the Xgrid nodes use to store the media that they'll be processing, so all the nodes have to be able to access the movies if they want to actually process it. So this is typically the SAN that we have over here in our rack. Then we have the information about our Xgrids. We have to point Podcast Producer to an Xgrid controller and we give it the user name to exit that it executes the jobs as.
So that's all you need to start your Podcast Producer. Once you've filled in these three different things, you can start your Podcast Producer. Now if we jump over here to properties, the idea behind properties is that you might have some information that is site specific that you want to apply to all of your podcasts, so the typical example here is your watermark. You're probably going to want to watermark all your podcast from your site with this same image.
So what, so how you could do that is you go down here to the watermark image. Can we see that in the back? So you have your watermark image here and you can set your watermark image to your school's logo or site's logo and if it changes all you have to do is you go in here and you change it.
So, if you saw in Nathan's demo the transition between the intro video and the main video and then the outro video, it was a swing transition and this is using Quartz Composer. And we support, the new feature that Quartz Composer has in Leopard which is the repository and repository IDs so it's very easy for me here to go and change what kind of transition I'll be using, so I can just change the swing transition to let's say cube transition.
So here, I just use the repository ID and I'll type in Cube. I'll save this and now my Podcast Producer will use the cube transition instead of the swing transition. So let me show you how that works. I'm going to switch over here to, ah, it didn't stick. Sorry. There we go.
So let me go over here to the professor machine and this time we'll do a screen recording. So I'll click here on the screen and we'll choose the line in hooked up with our microphones here and I can bring up a little Keynote that I have here. I'll prep this, so here I can just hit Record here or I can actually use the hotkey so if I was actually in Keynote all I have to do is hit the hotkey so Command F2.
And here we can play, so I can walk through the different slides here. So this is just some demo slides that we have here for you about the brain. You'll see in the next demo I'll have some, we'll talk, we'll talk over these. So, now that I'm done I can just stop it with the hotkey also. So, it went a little bit long there. So now that this is done, like I did before, I'm just going to click Done here. I'm going to choose the same work flow that we did before, so Human Anatomy. And this was The Structure of the Brain.
This was screen capture and let me submit that. So that, now I'm being uploaded to the Podcast Producer server. You should be seeing some blue lights flickering over there and while that's processing I'm going to go back over here to the admin machine and I'm going to show you some other things. So I'm going to switch back here.
So here, we saw the general settings. Here is where, there's another tab here for the work flows so this is where the admin can administer the different work flows. So we can set different, we can set different access controls on the work flows so as you saw here, the admin machine, we only had the Biology work flows because I logged in as a Biology teacher and as a Biology teacher I can only see those podcasts. So I can set the access down here and why isn't it... there we go.
So, there we go. So here, I have all the different, so these are all the different work flows that are actually available on the server but you saw that when I logged in with Podcast Capture I could only see three of them and that's because you see down, you see here only the Biology professors have access to these work flows.
I can go over here to cameras, so cameras is the cameras that are actually bound to the Podcast Producer. So, Pacific Heights, this is this camera that's bound here using the headless Mac Mini and is bound to the Podcast Producer over there. So we can see when it was last used by so this was when Nathan did his demo and we can also set access controls for the cameras so you could say that only the Biology teachers have access to the cameras in the Biology buildings. So that's the, that's the quick overview of Server Admin. I'm going to show you two other little things here.
So now that I have my, can we see that in the back here? So Davo mentioned the pcast command line tool so I'll just show that command pcast works. The Podcast capture app wraps this command line tool so anything you can do with the capture app you can write a command line that will do it. We'll go more into detail in the next presentation about this. So you can list the cameras. You can start it some, you can start a recording, you can submit anything that the Podcast Capture app you can do, you can do it through the command line tool.
And if you want to have a little look even more under the engine and see what's happening, we have Xgrid Admin. So Xgrid Admin will let me log in to the grid that I have running over here and I will sign on using my Kerberos credentials and I can see here that my job did not get submitted.
So this was the jobs that ran on the Podcast Producer system and I can get the status while they're running and I can see where they are at. So that's it for the Server Admin demo and I'll hand it off back to Dave.
So I'm hoping you're getting a feeling here that Podcast Producer is actually as much as you need. You can have a small system or you can have a large system simply by using the grid. So we've designed it to be modular and scalar so that you can actually customize the system to your exact processing requirements. So using technologies like Xgrid and Xsan, you can build clusters of CPUs that offer greater performance.
Scaling your system is therefore just as easy as adding another CPU to the rack or should you run out of disk space processing all this video, adding a hard drive to your Xsan file system. Architecturally, Podcast Producer can run on a single CPU or as our rack demonstrates over here, you can actually divvy up the functionality and have a dedicated CPU for each particular element of Podcast Producer.
So, a simple Podcast Producer deployment might look like this, one camera, one computer, one RAID box, lots of customers. That would be for someone maybe processing two or three videos a day. A more complex Podcast Producer system might be multiple cameras, a dedicated cluster for processing the video, and a different cluster for hosting all of the results. Again, consumed by all the customers using the same software and same technologies, the simple system deployed. The ideal Podcast Producer system and the one we recommend is the minimum system, looks like this.
( Laughter )
But you can scale it and it can be deployed this large. If you stay for the next session you'll see a, actually a system that dwarfs this being discussed. Stay tuned. So, Podcast Producer's an "open" system. It can be customized to meet your needs. Because work flows, are Xgrid jobs they can be composed using any text editor. If you like BBEdit, use BBEdit If you like vi or Emacs, there is no custom work flow editor required. They're just a shell script.
We leverage Mac OS X technologies like QuickTime and Quartz Composer to do all the image processing. So these are well understood APIs, well understood capabilities. All of the hosting technologies that we provide are based on standards, but even that you don't need to use. You can use your own hosting technologies if you have a different one but the ones we provide are all standard phase, HTTP, RSS, Podcast file formats, QuickTime streaming server. You can use FTP for your file distribution.
iTunes or iTunes U. So you can publish content to any hosting service you want simply by writing an Xgrid job that knows how to post to that particular system. So virtually any shell script can be turned into an Xgrid job and therefore a Podcast Producer work flow. If you can script it, it can be a Podcast Producer work flow.
There are huge developer opportunities inside this system. Again, this is an idealized picture of what a Podcast Producer system might look like and we're going to highlight on this slide where the developer opportunities exist. The first developer opportunity is your media application. What if you have customers working inside your application and they just want to send it directly to the Podcast Producer server? Well, your application can wrap the pcast tool. Very simple, very straightforward.
The second opportunity is custom work flows and tools. Apple's not going to provide all the processing tools that you can possibly conceive of. There'll be a huge opportunity here for both custom and professionally developed command line tools to be added to the Podcast Producer system and then integrated into a work flow.
And the final integration opportunity is your application or service as a hosting technology or a destination. In this case, your application service might be a tape library that archives all the video, so just don't think about end users consuming the content. You might be the archive system that you provide to people deploying Podcast Producer.
So let's talk a little more about direct content submission. During the video capture phase, Podcast Producer's not actually streaming the video. In the demos that you saw at the stage the video was being copied to the Mac Mini's hard drive. It's not live streaming. Only after Nathan finished the video was the file copied. This architecturally means that submitting a video to the Podcast Producer system, whether it be live or a final result from Final Cut Pro is identical.
We can process heavily edited content just as well as we can process extemporaneous content that's been captured live. So, all you need is a movie file and you can submit to Podcast Producer and use the work flows to take that movie file through the last stages of production. There's lots of opportunity here for direct integration with any media application.
So, application writers can simply wrap the pcast command line tool in their application for direct submission. In fact, if you have QuickTime Pro and a QuickTime Pro key, QuickTime player can directly submit to Podcast Producer a movie that it's viewing in its window and we ourselves use the pcast tool and the QuickTime player. So, pcast and its set of operations allow you to build Podcast Producer into your application so the customers don't have to exit your application, use the pcast capture application and lose work flow context.
So, here's a sample of QuickTime Player which is in Leopard and Podcast Producer is now in the sharing menu of QuickTime Player if you have the Pro key enabled. You log on using the same name and password as you would in the capture app. After logging in you'll be presented to the list of work flows and the title and description.
All of this can be done with pcast capture app, the pcast command line tool. The opportunity for new work flow tools is perhaps the most exciting to me other than the direct integration. We've had some enormously creative ideas presented to us about what people want work flows to do. The most interesting one is someone wants the video to be processed for facial recognition and generate a transcript of everybody that, everybody that was present in the video. So work flows are just Xgrid job templates.
Xgrid jobs seem specify UNIX command line tools to execute. If you can write a UNIX command line tool to process some video to do something useful, it can be part of a work flow for Podcast Producer. Any valid UNIX command line tool. Any valid UNIX command line or tool. Or Perl script. You have a Perl script that knows how to post to your content management system that can be the last step in your Podcast Producer work flow.
There will be a market for additional work flow tools that offer capabilities beyond the standard set that we ship with. And different encoding options, publishing locations, reporting tools to report billing information, these are all huge opportunities that you can come in and use our platform to deploy. So the possibilities of both are endless, absolutely endless for this system. Anything you can conceive of can be run as a work flow.
New work flows. Some people may not want to go to the trouble to write a work flow. They can be very simple or very complex. We see an opportunity for canned work flows that are much more complex than the simple ones we're shipping with the product. Apple's going to ship 12 standard work flows. These are great sample code.
I encourage you to review them, look at them, use them as a place to start, but it's very likely customers will need to enhance these work flows. Work flows are actually software and like all pieces of software they can always be better, they can always be faster, they can always be more complex, and we fully support adding a new work flow to the Podcast Producer system.
So, customers who want enhanced work flows that perform more complex tasks or operations. I think the ideal combination of a product would be, here's my work flow tool that does something on the grid and here's a set of example work flows that show you how to use it and ship that as a bundle, but you can package it any way you want. So, we provide the platform and customers and third parties will provide the solutions.
So, standard video extensions. All the video that our work flows use use QuickTime and Quartz Composer to process all the video. So, everything's processed so usually they're using QuickTime APIs or the Quartz Composer Image Composting APIs. QuickTime, as you all know, provides the industry leading set of video and audio media manipulation APIs. It's universal. It's supported on a wide variety of platforms, so anything you can do with QuickTime can be done with Podcast Producer. Quartz Composer is really neat.
How many of you attended the Quartz Composer presentation yesterday? Anything you can do with Quartz Composer I can apply to a frame of a video as part of a work flow. So, we have a new tool called qc2movie and qc2movie's a powerful new command line tool shipping with Leopard.
This tool is used by the Podcast Producer work flows. The intro and exit videos that you saw and the titling and the watermark was all done using qc2movie. The tool takes two inputs. It takes a movie file, which can be any valid QuickTime Movie file and Quartz Composer effects with parameters.
The result is a movie with Quartz Composer effect applied to every frame of the video, therefore, anything you can conceive of or hire an artist to do with Quartz Composer can now be done to your movie file. The watermark that we did was a static watermark, but Quartz Composer's a dynamic description language.
Picture an animated watermark being added to the first 15 seconds of your movie to brand your videos as it goes out on the web. So anything you can do in Quartz Composer, transitions, filters, video effects, or simple art work adjustments can be done using Quartz Composer using the qc2movie tool as part of your work flow and you can, you, too, can create professional video, professional looking videos.
Non-programmers can use Quartz Composer to create the composition so this means you can hire an artist, have them use Quartz Composer and have them do what they do best, which is art work, and then you can integrate that into your work flow after they produce the Quartz Composer composition.
So, in summary what I'd like to go over are the developer opportunities one more time. We have three unique integration points, but there's probably more, but the ones we're calling out are your application directly submitting to Podcast Producer, enhancing our work flow platform by adding tools and sample work flows or custom work flows for certain customer segments, and providing alternative location such as tape storage or other things for final destinations for the results that are being processed on the cluster.
I'd like to bring Kjell up for the requisite one more thing demo and this is very, very slick. Thank you.
( Applause )
Hi again. So, as Dave said, the Quartz Composer's really awesome and we can really do some amazing things with Quartz Composer with Podcast Producer.
As I was trying to think of some really cool, real cool idea for a demo and I was looking back at some presentations, some other podcasts, and I looked at a Keynote from last year and I saw at some point there is, you'd have a little video at the bottom where you had Steve and then you have it slides up at in kind of like a main screen, kind of like an iChat Theatre thing. That's kinda cool. You might want to have like a professor in the little box in the bottom and then have your slides in the top. So, I wrote a little QC composition here that I'd like to show you and you'll recognize the slides.
So first we'll hide the little composition in the back here, but, take the viewer here you can see I've got picture in picture. So here I have two movies and I'm playing back that we recorded previously and I have the slides here that are changing and I have my little picture in picture. So this is pretty cool.
But we can do so much more with Quartz Composer. So, it's great to have the slides and the main screen all the time, but sometimes they stay the same a very long time, so wouldn't it be cool if we could actually like just bring up the presenter? So I added a little transition. So, here it's, with the mouse, so if I just click on the mouse here, boom, we've got the presenter in the main screen.
( Applause )
So, that's cool, but the problem is this is being processed on the grid, right? So, I can't be on the grid clicking each time I want the transition to happen, so what I did is I wrote another patch which will add automatically detect when the slides change and if the slides stay the same for let's say five seconds, then it'll put he presenter in the main screen and then if the slides change again, well, it'll bring the slides back into the main screen. So let me show you that. So here you can see that I have in the middle my mouse detector down here, so let me zoom in on that.
So here's where I'm detecting the mouse click. So, I'm going to take my slides movie here. I'm just going to put it into, the input to my auto slide detection patch here and I'm going to take this input and just replace where the mouse was and now I will bring this back. We'll make this a bit bigger so everybody can see it and I will step back.
So, I'm not clicking anymore and you will see here the slide, the first slide is less than five seconds, so it's not going to change. This one is a bit longer, so we'll wait about five seconds until you can see the slide real nice. There it changes all by itself. ( Applause ) And wait. Slide change. Brings the slides back.
( Applause )
Same thing, slide sits more than five seconds, it goes back and one last time, because I really like this thing. There you go. ( Applause ) So, that's in Quartz Composer.
( Applause )
Welcome to Bio 202, Human Anatomy. Today we'll talk about the structure of the brain. The brain's covered by three layers. The dura mater, the arachnoid mater, and the pia mater. All three layers are composed differently and are crucial for protecting the brain.
At a bird's eye view we can say the brain is made up of four different lobes. These lobes all have different purposes from sensory perception to memory and to language generation. In this slide you can see the layout of the four different lobes. Next week we'll talk about gray matter, white matter, and neurons. See you then.
- It's just to give you a quick example of what you can do with Quartz Composer.
( Applause )
Back to you, Dave.
Thank you.
( Applause )
Back to the slide machines, please. Quartz Composer blows my mind. I'm a server guy. I do network bits. I do security. I do network administration. We're learning about Quartz Composer and I'm sure someone more familiar, shall we say, in the creative arts with Quartz Composer and Podcast Producer, the sorts of videos that could be automatically produced through your work flows are phenomenal and, I want to thank Kjell and the team for pulling that simple demo together.
But that's just scratching the surface of what you can do with Quartz Composer. So, in summation, Podcast Producer, we feel, is the most powerful set of technologies ever, ever, ever shipped that allows your site to ingest, process, and automatically publish podcasts without you having to click on the mouse to do the video switching.
Because of the design of Podcast Producer system, you can scale it. You can scale it to process more videos at once. You can scale to store more video. You can scale it to have the systems that you're posting to scale so that when 15,000 students all try to download a video at once, the vast majority of them succeed.
The use of Xgrid allows infinite freedom in work flow definition. There is no proprietary work flow format here. There's just Xgrid jobs and Xgrid jobs can execute any legitimate UNIX command line script. You can use Podcast Producer to process statistical data if you want. You don't have to process videos, but it's most powerful for that.
And Quartz Composer and QuickTime offering image processing platform that I think is unparalleled in the industry from the point of view of automatically processing video and producing results. And, Leopard Desktop and Server comes with everything you need, so you can take, and it's on your Leopard Server DVD and your Leopard. You can take Leopard today, begin setting up your trial systems, and building experience with this system so that you can come up with a roll out plan for when you're going to start using this at your actual site.
There are some related sessions that I'd like to go through. The most important related session is the next one, which is Deploying Podcast Producer, for which we'll go into even greater detail and some much more impressive demos about what you can do with Podcast Producer. Other sessions that might interest you are Integrating Rich Content Publishing and Infrastructure into iTunes U, since that might be a likely destination. For many of the videos processed by this system, that's today at 3:30.
And Introducing Xsan 2. We feel like Xsan 2 is the best file system to use for the grid. It's the highest performance, most scalable file system you can have for the Xgrid system that's processing the system, so we might want to learn about the feature sets of Xsan 2 if you're thinking about deploying a system like this. For more information, you can contact the server and technology group.