QuickTime • 50:00
With QuickTime Streaming Server, QTSS Publisher, and QuickTime Broadcaster, Apple provides a suite of world-class tools that make delivering your media easier than ever. This session guides you through setting up both a live and prerecorded streaming solution for delivery over the Web. Whether it's distance learning, a live CEO speech on the company network, or a product video on your website, you will learn the often requested tips and tricks to make your streams shine.
Speakers: Stephen Tonna, Victor Alexander, John Anderson
Unlisted on Apple Developer site
Transcript
This transcript was generated using Whisper, it has known transcription errors. We are working on an improved version.
Good morning everybody and welcome to session 708, Introduction to QuickTime Streaming. My name is Stephen Tonna. I work on the QuickTime product marketing team. This session is going to give you an overview of how the streaming server works and basically how to get your content up on the streaming server in order to deploy it across the Internet and actually other mediums including wireless cell phones.
And in addition, Victor is going to go through a little bit about how to set up a live broadcast. So with that, we have Victor Alexander who works on the Mac OS X server software engineering team as a seed engineer. And he's also set up actually in his former life, he did a technical training class on QuickTime Streaming. So he knows just about everything there is to about how to get up and running with QuickTime Streaming Server. So without further ado, I'll let him take over.
Thanks, Stephen. My code is done. Excellent. So introduction to QuickTime Streaming Server. This is a introductory session. So if you've done streaming before in any moderate to large capacity, I would encourage you to check out one of our advanced streaming sessions later on today and tomorrow, or check out another session in this time block. Because this definitely is just an intro to get you up and running with some real world steps.
As Stephen said, I'm Victor Alexander, software seed engineer. I pretty much focus on enterprise software, so Mac OS X Server, which QuickTime Streaming Server is a part of that package. Definitely love QuickTime Streaming Server. I've been doing it for several, several years. So let's get an introduction out of the way.
We're going to talk about the topic of real-time streaming. I'm going to give you just a basic intro of what it is so we have a basis to have a discussion. Give you some setup and configuration information, shorten your learning curve hopefully so when you go home to try this, you'll be ready to go.
My focus will be on QuickTime Streaming Server, QuickTime Broadcaster, and QuickTime Publisher. So those are the three tools. There are other streaming tools that are available, commercial third-party applications in a lot of cases. But I'll focus on those because those are freely available and you can check them out and work with them and it's a good basis to start with. I'll cover some new features added in QuickTime Streaming Server that's included with Tiger Server. And I'll try and give you some real-world steps as best I can so that you can go back to your organization and get this running quickly and easily.
So the good old what you will learn slide will do an introduction to QTSS and QTB, QuickTime Broadcaster. I'll show you how to do a quick session request to see if your server is running properly, all important. We'll talk about preparing media for the streaming server, working with playlists, QTSS Publisher. We'll do a quick live streaming demo if all goes well. And we'll do some Q&A at the end if there's any questions you have.
So first off, what is real-time streaming? We need a basis of discussion here. So real-time streaming is basically moving media from a server to a client over a network for playback in real time. And that's fundamentally different from opening up your web browser, say, for example, going to the QuickTime movie trailers website and watching a movie trailer. That experience is not quite as time sensitive.
Some people call that experience streaming, but in true underlying terms, it's really not. The files are just progressively downloading to your machine, and you'll start playing them back when enough of that content is downloaded. What we're talking about here today is actually a streaming server with protocols to support that real-time exchange. It's a very, very time-sensitive process.
The main fundamental protocols are RTP, which is Real Time Transfer Protocol, and RTSP, Real Time Streaming Protocol. These are really brother and sister protocols that work together to get a stream from the server to the client. RTP is really the meat and potatoes of the stream. It carries the actual stream content. It's the video and audio that you watch on screen. RTSP is the control.
So it does the stop, the pause, the close the window to destruct the stream. It's really the control language. So they work in concert with each other to negotiate with the client and server to get that content down to you. But really, RTP does a lot of the heavy lifting in terms of pushing actual media across the network.
Another thing to note about real-time streaming is that no files are written to the client's computer. And for people who have a, are concerned about copyright and where their files get distributed, that's a big deal. They want to make sure they maintain control of their content. They want to broadcast a concert. They want to broadcast a CEO address.
They want to broadcast their earnings. They want to make sure their information stays on their servers. And all the client viewers, all the people who are watching it, all they're left with is a good memory. They're not left with a copy of the actual presentation. So that's useful to know.
There's three main methods of presentation in using the QuickTime streaming server. The first one is video on demand. If you've ever missed a macro keynote by Steve Jobs and then gone to our Apple website a few days later to watch it, you're watching a video on demand. You go to the website, you demand it, it plays it back.
The second kind is a simulated live, which is more like a radio station. The third is a live stream. In fact, that's the thing that most people, it tends to attract them to QuickTime Streaming Server and its related tools because the live is so compelling. It's timely information that your viewers want to watch.
So here's a really, really basic architecture, right? You've got your media, really, it's sitting on the server, and you're sending it over a network, typically a TCP IP network, and you're sending it to your client. Right? Really easy. Just keep that model in mind whenever you're working with the streaming server. It's just these pieces are in play. In reality, it's really these players, right? You've got some quick-time content. You've got, of course, everyone has a rack of XSERVs, right? You just stream your stuff off, and you've got a client on the left-hand side.
So some basics about the streaming server, which I think will be helpful. Just like a lot of what Apple does, the QuickTime Streaming Server is based on open standards. There are ratified RFC standards behind the protocols that the streaming server uses. The goal is for us to work well with other players in the same space. So RTP and RTSP are open standards. Anyone can write players or servers or pieces that will work in that system. A single server, literally, a QuickTime Streaming Server literally can handle thousands of connections.
In the last couple of versions of Streaming Server, we've added support for MPEG-4 streaming, which is excellent. You have also a feature in recent versions of QuickTime, which is instant on. If you've ever watched a stream, you've probably gone to watch it, and you have to wait a few seconds for the stream to start playing while the stream buffers. If you have a broadband connection, that time duration will be very, very short, if not nil. So the stream will start to play back almost immediately.
There's web-based administration built in, as well as a tool provided with Mac OS X Streaming Server, which is very useful. So if you're on a platform other than the Macintosh, you can just open up a browser and manage your streaming server. And the design of QTSS is really similar to Apache. So if you have any experience with Apache, the design mechanisms that it implements are very similar. So there is an open source version of the QuickTime Streaming Server called the Darwin Streaming Server.
Really all that means is you get all the same kind of capabilities in the core server, except the Darwin Streaming Server is distributed for platforms other than Mac OS X Server. So there's a short list there, right? Mac OS X, you can download a version of Darwin Streaming Server for Mac OS X, Linux, Solaris, Windows. Of course, the source code is available if you're very gung-ho and you have other units operating system, you want to compile the source code, it'll work just fine. An impressive list of places the server can run.
So Server Admin. This is a new tool as of Mac OS X Server version 10.3, so last year's presentation. It was brand new. It continues on, this tool continues on, in the Tiger Server version. It's basically a general configuration tool for a number of services in Mac OS X Server. But of course now they have a QTSS module as of the last version of the server. There's some QTSS configuration monitoring tools built into that tool that makes this valuable for us. You can do IP binding, if you happen to know what that means.
You can check out the throughput graphs and how many connected users you have. Of course you can do remote administration with this tool as well. You can copy the server admin to another machine, maybe your admin machine, and run that and monitor your server from there. So demo. So let me show you. We can switch to computer one.
So I have Mac OS X Server installed, version Tiger, the same version you have picked up, of course, from our registration desks. All I'm going to do is I'm going to give you a quick tour of Server Admin. So I'm going to launch Server Admin and take you into the QuickTime Stream Server related pieces.
So on the upper left, we have our machine that we're interacting with. I'm actually admitting the machine I'm sitting in front of. It doesn't have to be that way. You can run server admin, as I said, remotely. I'll turn down the left hand disclosure button, and we'll see that QuickTime Streaming is an available option. So this is present in Tiger Server and Mac OS X Server version 10.3.
We have a general status here, of course. You can check out your logs. I should note here that the server is currently stopped, so we'll turn it on in a moment. You can check out your logs, see if there's any errors or issues. You can also inspect the access log to see who's been watching movies. Check your number of connections. These are current number of connections of people watching streams. That list can get very long, depending on how popular your content is. You've got some pretty graphs of how many people are connecting.
and settings. So in order to start the server-- before I go through the upper tabs-- in order to start the server, it's a very complex process. I'll show you how to do it. I click on the start button and I wait two or three seconds and the server is enabled. That's pretty much it. All the defaults are a good starting point, especially for testing. You might want to go and configure things as time goes by before you do a rollout, but turning the server on is that easy.
Quickly, just to take you through a brief tour of the settings options that are available, you can control where the directory on the server, where your movies you want to serve are located, using this dialog, this text field. You can also control how many connections you want to do simultaneously, your maximum throughput.
Obviously, you should set those to relative to what your internet connection will be for your server. If you're serving the internet, you'd probably want to set it appropriate to your external connection to the internet. If you're serving to your enterprise or to your school or organization, 100 megabits, if that's what you have going outside the server, is probably suitable.
You can also set some passwords and access for doing live streams and MP3 broadcasts. IP bindings, I won't get into this, but it's very useful if you have multiple Ethernet cards and you want to assign the QTSS service to one or the other or both. Relays, a little more advanced topic, but you now have a UI for figuring relays, which is very, very helpful. And of course, you can control what the logging is.
So that's pretty much a rundown of what's in Server Admin for QuickTime Streaming Server. It's pretty straightforward. As you can tell, it's just one click to turn the service on. So now, how do I know this is running? How do I know? It says it's running. How do I check? So there's an easy way to do it. If we switch to computer two, I've got a client here.
And I will launch my QuickTime player. So normally the streaming experience is, for most end users, once you have a polished system, is they'll launch a web browser, they'll go to some event page where there is either a live stream happening or there's a prerecorded one, a video on demand. And they'll click on a link and they'll be sent to QuickTime Player in most cases, and they'll watch the stream.
But for us, since we're the IT admins for the streaming server, we just need a quick test to make sure the streaming server is working. So there's a very handy little menu option, which is Open URL in New Player. And that's just a quick and dirty way to-- That's a quick and dirty way to make the-- oh, can we switch to computer two? There we go.
Thank you. Let me step back. In QuickTime Player, there's a menu option called Open URL in New Player, which is a quick and dirty way to let you just quickly check and see if a stream is functioning. Normally, most users won't access streams this way, but for us it's perfect. We just want to do a quick test to make sure the streaming server is working.
There are sample files included with the server. We've got one noted right here. There are various bit rates. This one's a perfectly suitable one to test here. And we can go and see, and in fact, success! Our streaming server is working. This content is coming from the server we just turned on. How do I know that? The information box reports in the source that it's coming from a location called RTSP. Remember me saying that acronym a few minutes ago? Right? Real-time streaming protocol. So this file is not playing back on the local machine. It's streaming over the network.
Perfect, our streaming server is running. Can we switch back to slides? So we turned the server on, we did a test stream, everything's working, great. Time for a coffee break. The next thing you need to do is you need to get some content to deliver. Now this session focuses on IT administrators who are working with the server from a server deployment standpoint. Of course, you have a crack team of people who are developing content for you.
There's a whole other topic area where people can shoot, edit, use tools like Final Cut Pro and compression tools to compress that video down to a suitable size and format. That's beyond the scope of this session, but essentially what I want to point out is that you'll need to find some content somewhere that's compelling for you to post on your streaming server. The one key thing to remember is that you need to perform an additional step just beyond taking that good quality video you may have shot of some event and reducing it down through encoding. You also need to perform a step called hinting.
It's a really simple step. It just simply adds a couple of additional tracks to your movies, which give the streaming server a tip on how to deliver the content via a stream. That's it. Very, very simple. So you simply export the movie using QuickTime Pro. You can add these hint tracks via a couple of clicks, and that's all you need to do.
If you don't want to use QuickTime Pro, there's other tools out there. Discrete has Cleaner, which has several, several options for encoding, but they also offer options to add hint tracks. There's numerous other tools that do it as well. You usually want to look for a streaming tab. It's a good place to head for when you're compressing your content. The important thing to note about this step, although simple, it should be the very last thing you do.
You can't make any other changes to that media at all. You need to make the last change and then hint the file, and then place it on the streaming server for consumption. All right, let me do a quick demo. We'll just take you through that. I just need to push some content onto my machine. Excellent.
So we, I had my crack team of videographers go out and film some content for me. We're going to bring it over to... and I will be joined by David and David, who will be our co-hosts. David, I'm going to bring it over in just a moment. Excuse me. I'm going to bring it over from my PowerBook.
Now, this content was just filmed with a DV camera. In this case, I used iMovie. You can use Final Cut Pro. There's some basic editing applied to Basic editing applied to the video content. It was compressed using Cleaner. I just picked one of the presets that's available in that tool. We'll just bring that content over, and we'll show you how to hit Media. Very, very simple.
So for the disks you picked up from the registration desks, QuickTime Pro is enabled by default. Normally under non-pre-release situations, non-beta issue, QuickTime Pro is $29.95 US. So that will get you the export options, which among other things will let you hint your content. So we have our sample here. and David I don't know who that guy is, but-- so we've got MP4 content now.
What I'm going to do is simply just go File and Export. And I'm going to do Movie to MPEG-4. Even though it's already in MPEG-4, I'm going to go Movie to MPEG-4. And what I'm going to do is, since this content's already been processed, edited, and compressed for me, someone else did all that hard work.
I'm simply going to say for the audio and video tracks, just pass them through. Don't do any changes to them. Don't try to encode them. Just pass them through. And typically, if you're admitting a streaming server, you typically just want to do that. You want to let them pass them through. Or if you can get your people who are creating your content to add the hint tracks themselves, you don't even have to do this step. The content will be ready. But I want to do a pass-through for audio and video.
And I want to enable streaming. And those two or three options, just leave them as is. Unless you have a very, very high volume server, in terms of number of people connecting, you might want to select optimize server. But these defaults are absolutely correct. So turn on enable streaming, click OK. I'm going to save it to my desktop.
I'm going to call it Hint at the end because it's hinted. And I'm going to click Save. Hinting is not a computational intensive process. It's simply just looking at the media and adding those extra simple tracks, which are just a recipe on how to break up the media. So as you can see, we've got a hinted movie here.
If I bring up my properties-- how come I can't bring up my properties? Yes, I may not be able to show you, unfortunately, but I'll try and just put this in the stream folder file. Let me just do this. So we'll try and stream this file, see if it works. So we'll go library, QuickTime Streaming.
As you saw in the interface, the movies are located in the library QuickTime Streaming movies folder, so I'm going to drop this movie in there. And I'm just going to go to this local machine. I'm just going to play this back from the local machine. So RTSP colon slash slash QTSS. I'm just using a little quick bit of rendezvous here to access that, my local machine.
So there's my stream, right, playing back. Golf clap? Hello, and welcome to the-- Maybe not. So the file plays back properly. I added the hinting. That makes it viable for the streaming server to play back. Works as expected. No problems at all. So, hinting is a simple, simple process.
Can we switch back to slides? So let's talk briefly about viewing locations. Typically streaming, when you think about watching streams, is who thinks about watching it on a computer screen? How many people think that that's the default way to watch it? Is there any other locations you can imagine watching streams on? Television? Anywhere else? 3G cell phones? Yeah.
The generic term you might hear for clients viewing content, especially with streaming, you might hear the term terminal, just like a viewing terminal. And it's not only computers, right? Of course, it's handsets, as someone said, you know, 3G phones. So we have a brief demo. Stephen's going to come up, and if our GSM network is good enough quality in this room, we can get a fairly decent stream. But we're going to use a 2.0 GSM network. using GPRS to stream a sample.
Previous to this session, I simply did an extra export of the content you just viewed, but I did it as a 3GP file. If you've been to previous sessions like State of the Union QuickTime, you saw that process happen. It's literally two clicks, and you can export the file. We have the content on a public server that we can stream over this cellular network.
So Stephen, do you want to give us a demo? Do you want to switch to demo two? So, Stephen will demo and I'll just briefly walk you through what's happening. We have a video camera hooked up to the second computer here. It's just showing us the screen of the cell phone. We're using a player that can perform streaming capabilities on the cell phone. It's requesting the content from a streaming server that's back at Apple. It's just literally sitting on a wired network just like we have under the desk here.
The cell phone has data capable services called GPRS. They layer on top of the voice services that you're normally used to by making phone calls. And the content will play back over that GPRS data system and we can watch the content on a cell phone. So, you saw the clip playback on a computer, you see the clip playback on a cell phone. Amazing. This particular clip is using a technology just simply GPRS. That's a fairly vanilla, at this point, vanilla. Speeds for data services.
We're using AT&T network to do this demo. They have GPRS services. They've had them for quite a while with their GSM phones. They have a next generation series of phones called Edge. Edge is an enhanced version of the GPRS system you're seeing being used here. That essentially will give you better quality video. Right, higher data rates, better quality video will play back.
This day rate is 35 kilobits per second. Actually, sorry, 30 kilobits per second. I didn't want to push it too hard because we're inside a concrete building, but we had to do some juggling this morning to make sure it played back. So it's 30 kilobits. This is not the new codec.
This is simply using a standard 3GP file that you could export using a standard version of QuickTime, you know, QuickTime Pro that you get on Mac OS X version 10.3. I'm using an H.263 codec and something called AMR Narrowband for the audio. Pretty vanilla. It's kind of the default presets.
No real magic. I just needed to pick a speed for the content that was slow enough to support the GPRS system. So, why does this matter? I think it was important to show this in the intro session, because I want you to think about content just beyond playback on your computer, right? We've got wireless, we've got wired clients, but using the data services provided by cellular carriers, we can actually play this content back.
Now, you couldn't hear the audio quite well enough, but what that was is a simple demo that I just cooked up a few days ago with content that would be something that a sales force for a company would find timely. So, if you had a sales force of 50 or 100 or 200 people, or remote schools, or people in the service industry that are doing remote service and repair, they can literally get up-to-date information off their cell phone without having to be near a hotspot, without having to go plug in anywhere.
They can get updates. Some of the information in that video is, you know, please note that there's new firmware for the hardware we just shipped. Note that there's an announcement at 2 o'clock. Please check that information on the corporate website. Timely information that they need to pick up every day.
So, it's a good thing. I produced this video in about 20 or 30 minutes, and it's literally something an organization could pump out on a daily or weekly timeframe and distribute that to a very wide range of people, geographically widespread. All you need is a cell phone with a signal, essentially. So, can we switch back to slides? So we talked about the three ways to play back content.
You've already seen the video on demand. When I hinted the file just a few minutes ago, we went and played it back on the computer. That's a video on demand stream. That's the most common way to stream content. People go to a web page, they click on it, they ask for it, they demand the video, and it plays back for them. It plays start to finish, and it's done. That's it.
Playlists, which is the second type of presentation, is more like radio stations where you simply jump into the stream and just like turning on your radio on your car, you turn on the stream and wherever that content is in its set playlist, it will just start playing. So that's vastly different than the video on demand experience.
You have two types of playlists, I should note. There's movie, QuickTime/MPEG-4 playlists, and MP3. I won't talk about the MP3 because that's using a format called Icecast. You may have heard of it, but I'll leave you to explore that after the session's done. What we really want to work with is the playlists for QuickTime/MPEG-4. The playlist is configured via QTSS Publish or Web-based Administrator.
I think what I might do is I might leave that demo for John or at the end of the session. I'm going to skip over this demo just because of time. We're starting to get a little time crunched. The playlist, basically, you set the order of media. You can say I want these 10 items to play in this order, or you can set it random and say I want these 10 audio files just to play randomly.
You can set it to loop or play start to finish, and literally that content will just go off on the stream server and just play it in the order you deem. If people jump into the stream, they'll just jump in, wherever the content has played to at that point.
So QTSS Publisher, this is a tool that ships with Mac OS X Server. It was brand new as a Mac OS X Server version 10.3. It is included with Tiger Server, of course, but this version sports a highly revamped UI. Much improved, very, very nice, very, very elegant. It gives you remote media file management, so instead of doing the process that you just saw me do on the server where I opened a media file, I hinted it, and I copied it to the machine, and, oh, if I'm not on the server, if I want to add my machine, I have to find a way to, like, FTP or, you know, set up an AFP server on that, QuickTime Streaming Server, and copy the file over. QuickTime, the publisher tool circumvents that. You can launch that on the admin machine, take your files, drop them on the server, and it's much more seamless integration with the server.
There's automatic hinting and web page preparation. You can stream playlists and control playlist management, as I mentioned. You can edit the annotations, which is some of the copyright and details that come along with a movie, like the title, the copyright, who authored it, things like that. And of course, it includes some Unix tools. So I'd like to introduce John Anderson, who is an engineer for the Mac OS X server team, who worked on Publisher, and I'd like to have him do just a quick demo of Publisher. So here's John.
Hopefully this is on. So I'm here to demo QuickTime Streaming Server Publisher, as Victor said. And a little bit more into what's going to be in the version 2 of Publisher. One of the major things that we're adding as well is AppleScript support. So you're going to be able to control this via AppleScript if you already have workflows, and theoretically from Automator as well. So that'll be great. So what I've done is launched Publisher, and of course, since I've already logged in, all of my information is filled in for me from my keychain. So I'm just going to go ahead and click connect.
Now, of course, I'm connecting to a local machine here, but I can connect from any machine that's accessible from the network. And what I'm going to do is I'm going to take Victor's piece of content here. Now, this is not hinted at this point. So I'm just going to drag it up to the library. And that will upload the movie, put it in the proper streaming folder. And it will hint the movie as well, automatically.
Now if you look at here, I have some settings that are new to QuickTime Streaming Server Publisher 2. And this is something that allows you to choose. If you're binding the streaming server to multiple IP addresses in the server admin tool, then you can actually choose which IP address that you want this to serve from. Same thing for web servers. So if you have multiple virtual host sites, you can choose which site you want your web pages to go on to.
So what I'm going to do here is I'm going to click on this movie, and I'm going to say I want to publish this movie to the QuickTime Streaming Server. And I'll hit Apply. So this movie is now available for streaming. And it will automatically grab the poster image, which the first frame is black, so that's what it's stuck to. But I could also choose a custom image if I wanted to.
Making playlists is also very easy with a publisher. All you have to do is click the little plus sign down here and... Take your files and drag them right to the playlist. So this interface is very similar to iTunes. Then you can choose whether you want this to be looped or not, whether you want it to be weighted random. And weighted random means that if you have more than one file, you can give files different weight, and it will play them more often or less often according to that weight.
The other thing that we can do here is if I go back to the library and click on the file, you can see I can edit the annotations right from here. And the kind of neat thing is that, as Victor said, you need to do the hinting last after you make any changes. So if you change these annotations from here, it will actually re-hint the movie when it's done. So it saves you the trouble of downloading the movie, making the changes, and uploading them again.
If you scroll down here, you can see some settings for how you want to embed the movie in the page. And, for example, you can have the user click on the movie and have it open in the QuickTime player. You can have it embedded in the page itself. And, depending on those settings, it will actually give you HTML that you can copy and paste or drag and drop into BBEdit or Dreamweaver or whatever your favorite HTML editor is.
And the other thing that we can do is we can make web pages. So-- You can create a page just like I create a playlist and drag files to it. We will actually use an XSLT web template on the server to take that HTML that we saw in the field earlier and insert it into a page so that you can automatically create web pages of content without having to ever enter an HTML editor at all. So that's Publisher.
Excellent. Publishers, amazing tool. Definitely is extremely helpful. Thank you, John. So on to the third type of method for presentation on the streaming server. And like I said at the start of this session, it's really what often drives people to inquire about streaming server in the first place. Live streams. The only way to get an event or a happening or a press conference or an earnings announcement delivered to your intended viewers as it happens is using live streaming. You can't do this using the mechanism I mentioned previously, which is progressive download, watching those movie trailers.
That's pre-stored content that's been already authored and mastered and placed there. It's content that happened and was filmed in the past. This is absolutely live. There is a few seconds delay, of course, to film the footage, transcode it, and bring it to the server. But it's effective when probably live for your users.
It requires the use of live encoding software. For us, that means QuickTime Broadcaster. There's other choices out there. I would encourage you to check out apple.com forward slash QuickTime. Go and check out the tools area. There is a streaming and live encoding area where you can check out some excellent third-party tools that will let you do things like multiple cameras, add text, you know, wipes, effects. Broadcaster is a free, from Apple, just baseline, good live encoder. Get you going, one camera, get you started. started with low cost.
You can connect any AV equipment you want. Of course, your computer has to support those connectors using cards or whatnot. The most common way we tend to see, even with more professional setups, is what I've got here on stage, which is a DV camera with a FireWire jack on it. And that's connected to a FireWire port on the live encoder machine, and that's how the source gets done.
I've seen large-scale streams where they have five $10,000 video camera with FireWire on it, and they've still got the same type of setup as I have. They've just got better lenses and optics and equipment and a much better camera operator too. So, the same kind of system exists.
On large scale events, you want to typically dedicate an individual machine to do the live encoding. So you're going to have a live encoder box that's shuttling data to a server, then that's shuttling data to your clients. It's a little bit different than the original diagram for the live stream.
So, MPEG-4 audio and video streaming require G4 or greater. Because of the computational expense of those codecs, in order to do that type of encoding on the fly in real time, you need a bit of horsepower. So, pick up a Power Mac G5 if you want to do any kind of MPEG-4 based, AAC based streams.
The last thing I should note is Apple uses this stuff for our live events. We do it on a larger scale, of course, because we have 50,000 or 100,000 people show up for some macro keynotes, but we use this stuff. If you're not already aware, we do quarterly announcements for financials, and that system uses many of the tools that I'm showing you today, certainly QuickTime Streaming Server.
So the setup is quite simple. We've got a video camera. In this case, I'm going to say that we're going to do a large-scale event because I have a separate machine, as you can see that PowerBook up top, which is my live encoder box. It's a dedicated G4 or greater box. It's taking the video in, it's encoding it, it's hinting it, and it's sending it to, in this case, the G5 XServe.
So that live encoder is going to be quite busy, very, very busy. And the XServe G5, of course, is going to be sending the content out to the client. So keep that in mind. Let's do a demo and I'll kind of talk through some of the different areas to do with a live setup. I'll use my nicely set up camera here.
I'm just going to turn my camera on. My front row guys will be my unvolunteered talent. So in the Applications folder, we have QuickTime Broadcaster. Again, it's included with the streaming server-- excuse me, it's included with Mac OS X Server. We launch it. Very simple tool. One window. You've got your preview. Plug in my camera and we'll have a preview. There are a couple controls down below.
You have to relaunch it. Oh, there we go. So we just have a preview up top, a broadcast button, recorded disk, some settings, and that's it. So if you wanted to just plug and go, you could easily just use this interface. Of course, showing details will expand to give you more options. You can see there's an audio, video, and network tab.
In order to perform a broadcast, there is a little bit of pre-work we need to do. Before the session started, I actually went into Server Admin, which I showed you at the start, and I went into an area where you can configure passwords. And because I want to control access to who can broadcast content to my streaming server, I don't want any Joe Schmo in my company to be able to do that, I set a password that will control the inputs. I just don't want any live encoder to be able to send content through my streaming server. So I had a control point.
So I'll mention that in just a moment. The defaults here, you have some presets available. They are based on the connection speed that your users are going to be on. So if you're on modems, I'd select modem presets. We'll use a LAN setting since we're in a wired LAN here.
You can select the source where the audio is coming from. I think I'm going to pick the DV audio first two channels, I believe. You can set the gain for the appropriate options. There's some codec options here that are available. These are very much the same as what you'd when you're exporting a QuickTime movie.
There is packetizing information, but generally you don't have to make any changes to that, especially if you're just getting started with streaming. These defaults are perfectly suitable. You also note that you can enable and disable the video and or audio. So you can have an audio-only stream, or a video-only stream, or both. Of course, if you're doing an earnings announcement for your company, it's likely going to be audio-only, so just disable the video tab and all you're going to broadcast is audio.
So switching to video tab, I'm going to select LAN low motion. That's kind of suitable for this situation. It's one of the presets. It notes the source. So I have a FireWire camera. It's the Sony DCR PC100. Just a pretty simple camera. It pulls that information from the FireWire frameworks.
We can set the size of the video. 320x240 is a good starting point, especially because I'm going to be streaming on my wired LAN here. If you're streaming to a modem, you'd want to set that size down to something like... 176x144, something in that range. We can pick the codec. MPEG-4 is a good choice. You can set the quality you want. I like medium. Set the frames per second. I'll leave that as default since we have a fairly generous network here. And we get to the network tab.
So if you're just starting with streaming, you literally could just pick one of the presets for audio, one of the presets for video, skip right to the network tab, and this is really the only place you have to do any real work to get your stream just at least into testing mode.
You can save presets here. There are none created because, of course, each network is different. And all we want to do is determine how we want to transmit, how we want to announce the details of this broadcast. And I should point this out. QuickTime Broadcaster does something very, very useful. It uses the announce protocol. And what that means is when you fire up a brand new stream, a small text file is created. It's just a description of the stream. It's called an SDP file.
It's one of those standards that we talked about. It's an open standard along with RTP and RTSP. That file, using the announce protocol, will automatically be sent to the streaming server. So in this case, I'm using the same machine to do the encoding and the streaming. But if it was a separate setup, like I showed on the diagram just a moment ago, QuickTime Broadcaster will automatically push that SDP file to the server. Extremely helpful. I can't tell you.
Because, again, using the slightly older format, which is a manual, a manual unicast, you end up having to try and copy files to the streaming server using FTP or AFP. You have to use some sort of file protocol or sneaker net to run that SDP file over to the streaming server and drop it in the right folder.
Announce will automatically push that required file there. So I'm going to use the announce feature here. I've got the host name. I'm just using that. I'm going to call it, you know, intro to QTSS. Actually, I'll answer that question at the Q&A. How's that sound? Just so we can get it on the mics.
Now, username and password. Remember I did some pre-work. I said I went into the server admin and I went to the passwords area and I set the username and password. I'm going to enter that here so that not just any Joe Schmo can use my streaming server as a live feed. Did I just... I just crashed out, so we'll just restart that step. Let me just go back and get us back to where we were. We're going to use music, video-- oh.
We had our camera turn off. Sorry about that. Let me just get us back to where we were. My apologies. My camera turns off after a few minutes. I want music. I want music. I want-- let's find High Motion. I'm going to use custom Unicast QTSS local. I'll call this Intro.
My username is admin. My password is super secret. I can set a buffer delay. You can set that to any value. If you're streaming to your corporate network, which is all wired Ethernet, you can set that value a little lower. There is a built-in default of two to three seconds, even though if you set this to zero, it will still be two to three seconds. So typically, you know, four to five seconds of a little bit of buffer. Let your clients kind of queue up the content on the other end.
If you're broadcasting something like a concert or a remote event, and you have your live encoder at that remote event, because of course the camera has to be there as well, you can use broadcast over TCP IP. That just means it will do a better job of guaranteeing that the live encoder will send the content in its complete form to the server. We'll not choose that here. We have a wired LAN. QTSS. S, of course I'm the author.
I'll just save that as a preset just in case. Excuse me. Call it QTSS. Click OK. And if all goes well, I should be able to just hit the broadcast button. And you notice that in the preview window it said starting broadcast, and now it's broadcasting. And it gives you some status underneath that preview area. It's a little bit small. I'll just hide these details. And literally, your live encoder, all it has to have is just that small window up.
That's enough to perform the live encoding duties. Now, I've got a Power Mac G5 dual 2 gigahertz here, so it's got lots of horsepower. So I'm running the streaming server on the same box. So now to watch that content, like I said, normally your viewers would go to a Web page that you've created with a link to the stream. But if we switch over to computer 2, Hi, everyone. I'm Stephen Tonna, and I'm the CEO of QuickTime Streaming Server. I named the stream Intro to QTSS. So to pick up a live stream, it's quite simple. I'm going to use the same address of my streaming server.
Now, notice what's missing in that URL? An extension. So you don't need to enter an extension for a request for a live stream. It's just understood that .sdp, that little small file that's created by Broadcaster and automatically pushed to the server, it's understood that that is what you're requesting when you type in just the file name sans extension.
So if I hit OK, We now have a live stream playing back from our client off our server using this. Yes, everyone automatically starts doing stuff in front of the camera. There's roughly a five to eight second delay probably, but you can see that we're watching a live stream.
Now, just like broadcast radio, they have a six second delay. Like I said at the start of the presentation, live broadcasts, there's a bit of a delay, right? It depends on what's happening. There might be other traffic. And I think I set the buffer at five seconds, so you get eight seconds of delay.
The optimal situation is to run a live encoder on a separate machine, because this box is running a couple services and streaming server and live encoding. So it's doing a bit of hard work. So keep in mind, your viewers at the other end won't see this delay. They won't know, because they're not at, you know, people don't sit in the radio broadcast booth and listen to the answer, right? They're out in their cars, they're driving, they don't know there's six seconds of delay. Effectively, it will be live to them, right? So that's a live stream. And literally, within five, 10 minutes, you can set one up. Turn your streaming server on, open up Broadcaster, plug in any consumer camera, certainly with FireWire on it, and you're ready to go.
OK. Can we switch back to slides? So for more information, there's an excellent PDF guide that you can pick up. It's the Darwin Streaming Server Administrator Guide. With QuickTime Streaming Server, you get the QuickTime Streaming Server Administrator Guide, excellent PDF, which documents several features, how to set up the server in more detail. You can also go to apple.com forward slash QuickTimes, forward slash products, forward slash QTSS.
There's all the latest information and links to downloads for Darwin, updates for the QTSS, of course. If you're more on the development side, because of course the source code for the streaming server is available, if you do more development, we will gratefully accept source code suggestions and changes. You can submit back to Apple after you download the source code. You can check out the two developer links there at the bottom of the screen for more information on that.
Reference Library, I'll leave this up for a moment or two. The training group used to offer a QuickTime Streaming Server course. It was the one that I wrote that Stephen mentioned at the start of the session. It no longer is in current circulation. If you contact the fine folks at the technical training group at training.apple.com or training.apple.com and request it, it would be a nice way to see a revival of that course. It's a three-day classroom taught course with examples and exercises you need to work through, and there's theory about bandwidth calculations and saturation and live event planning. You can receive a manual that's 250 to 300 pages of content you can take with you. An excellent class.
but like I said, it's currently not in circulation. So I'd encourage you to contact the technical training folks at train.oppa.com and ask for it. So I'd love to see it come back, especially in light of the cell phone streaming we demonstrated earlier. Fabulous book by Stephen Gooley called "Quick Time for the Web," excellent book. There's a general reference on QuickTime, including streaming. We've got a streaming media bible and the engineering task force, which is the standards which describe how RTP and RTSP are supposed to function.
I'll jump back to this in a moment. There's a couple of knowledge base articles which are extremely helpful. If you forget your password for your streaming server, how to reset it. There's a description of a log access format. The streaming server logs over 40 parameters for every time a stream is requested. How many bits they watched, how many bits they lost, what they watched, when they watched it, all those details and several more parameters are captured.
And the binding on how to bind the QTSS server to a particular Ethernet interface, one or the other or both, is described in the last article. So who to contact? Guillermo Ortiz, Stephen Tonna, who introduced me at the start of the session. Of course, we're going to do a Q&A in a few moments. You can ask questions about the information I just presented.