Sunday, February 22, 2009

Internet Broadcasting Phase II

Broadcasting Redux

Last term we had fiddled around with broadcasting from a USB stick using icecast and a hacked winamp but it was not entirely successful. So we decided to try a different tack. We purchased a G4 mac mini (1 gig ram/80 gig hd) and installed osx server 10.5 on it. The idea is to see how well the mac stands up as a broadcast platform. We can use our trusty dual G5 (2 gig, 1.5 terabyte) as the client that produces the content. It is hooked up to a sony miniDV via firewire and has iMovie, Garageband, Final Cut, Soundtrack etc installed. It is running 10.4 because of the need for the occasional classic environment session. Quicktime player will be used as the client and the scheduled should be available on a web page. We also want to experiment with iTunes as a client.

The basic idea is to:

- have users create either audio or video shows with their own content, or to weave together acquired content
- the shows would either be theme based or maybe even revolve around an 'on-air personality'
- the content would be edited and encoded for internet streaming and moved to a server
- the server would broadcast like a radio station or tv station

We are not so much interested in live events as in creating playlists of pre-recorded and encoded content, in much the same way as most radio and tv stations.

So let's begin the adventure.

Getting Started

Mini is up and running. So the first step is figuring out the quicktime streaming server (QTSS) and the quicktime broadcaster.

Quicktime Broadcaster is used for encoding a live source and delivering it to the server so that everyone sees the same point in the video at the same time. Actually, it does not have to be live, the same effect can be achieved by broadcasting content via playlists. This requires a faster broadband connection which is fine as the clients will be in the same building. For our development environment we will run quicktime broadcaster and quicktime pro on the dual G5.

The website should also have links to shows on the schedule and since these are basically self-contained video they can start playing as soon as the movie has the data it needs. This means the movie starts before it is fully downloaded and can be watched in a web browser. The movie is actually downloaded to the viewer's computer.  Quicktime 6 or higher recommended. This can be used for viewing at home. The web page will specify what content to send to the client.

We will run the quicktime streaming server on the mac mini and the clients will be the G5 iMac, an XP machine and a Ubuntu box.

Note: When we get to the IMC lab we will have to see if they quicktime broadcaster software on the clients, if not it can be downloaded for free from the apple web site.

Quicktime Streaming Server can operate in multicast or unicast mode. In multicast mode each client connects to the stream sort of like a FM radio tuning in a station. This is the more efficient model. Unicast requires each connection to have its own stream putting a heavy load on the network. Since the number of client connections is likely to be small, this may be ok.

Note: Find out if the network is multicast-enabled. It probably is as there is a windows media server on it.

Setup
Damn we downloaded the 10.4 documentation. Off to google to find the QTSS_and_Broadcasting_Admin_V10.5 pdf file. Goto page 25

1. Goto Applications, Server, Server Admin
2. Log in as administrator

A warning message appears:

The server gnickers is a standard configuration of Mac OS X Server, which is best administered using Server Preferences. You can use Server Admin to customize or add services, but your changes could have unintended effects. Before making changes, carefully note current settings in case you need to revert to them.
Alternatively, you can convert this server to an advanced configuration.

3. We select Convert to Advanced and a wizard appears noting that if you do this you will not be able to use server preferences to administer the server anymore but have to use Server Admin and Workgroup Manager. These were the tools in 10.3 and 10.4, is apple doing away with them in favor of a simplified preferences? Now it comes back to me - when i installed it asks what is the role of the server and i choose standard. This allows you to do some stuff and uses the server preferences as its control panel. However, the standard and workgroup roles do NOT allow you to run podcast producer or quicktime broadcasting which is why we are here! 
4. We select Convert and away it goes we are now in the Server Admin control panel
It is obvious the documentation is out of  date, neither the printed 10.4 or greater nor the 10.5 version we just downloaded has text that matches the screens. Ok - let's figure it out.
1. From the menu select Server, Add Service to display the list of services. We decide to turn off some things that are running like mail, ichat, ical, open directory, vpn and turn on Podcast Producer and QuickTime Streaming. We will leave mySQL off for now but later we may need it if we take a look at the open source Jinzora streaming software.
2. Click SAVE
3. Select the QuickTime Streaming service and click the General tab to edit the default

Max connections: change from 1000 to 50
Maximum throughput: change from 100 mbit/s to 50 (will see how it goes)
Media Directory: the default is /Library/QuickTimeStreaming/Movies

We will leave the default directory alone for now but wonder if it is shared so that clients can save directly to it. If not, which seems likely, we will change it later to a public folder that users place content in as part of their production workflow. The manual notes Make sure the owner of the new directory is the system user “qtss”. The owner can be changed from Workgroup Manager,

The other option is when we add the users they will have home directories and we may want to stream from there. The manual notes this can done in the Access tab by selecting 'Enable home directory streaming'. Users then put their hinted quicktime movies into the folder that was created in the their home directory (/username/Sites/Streaming). The downside of this approach is to stream a live broadcast from a directory other than the default media directory you must create a qtaccess file. These files are like the htaccess files used with the Apache web server. It contains information about users and groups who are authorized to view media in that directory.

The Access tab has a mp3 broadcast password box. We leave this empty
The IP Bindings tab has two options - we enable streaming on all IP addresses

4. After Saving the changes we click the Start Quicktime Streaming button.

Testing it Out

There are some sample movies included with QTSS in the default folder. You use a quicktime player to  view these movies. 

1. Went to the G5 mac and ran quicktime player
2. Select Preferences, Streaming, Speed and set it to LAN with Enable Instant On
3. Select File, Open URL and put in rtsp://gnickers.fims.uwo.ca/sample_300kbit.mov
4. Went to the XP machine and it played no problem there too

Can't for ubuntu as there is no quicktime player. We then copied over a bunch of old quicktime movies when Liam was 2 and tried to view them. We get 'unsupported media type' from the windows player and 'live broadcast paused' from the mac. Oh, these movies are probably not hinted so they will have to be converted to streaming format. Tomorrow.

Conclusion

We now have a streaming media server. However there are a number of things to improve.

  • The use of the quicktime player with rtsp:// is clumsy and not suitable for end users so we need to set up  some basic web pages to link to content. These pages should really be dynamic so as to reflect new content files. Will start with test pages and then maybe brush up on php 
  • Existing content files in quicktime format will have to be converted so we need to know which is the best or easiest way of doing this and it has to work with the software on the IMC lab client machines

To Do:

  • Install quicktime broadcaster on Dual G5 - done!
  • Figure out how it works and set up a workflow between G5 and the media server
  • Test it out with live camera broadcase
  • Look at getting a newer mac laptop





No comments: