Streaming


On the Church IT Podcast last week Chris K mentioned that they were talking to 316 Networks and Akamai about streaming solutions. They are saturating a “75MB pipe … over 500 users @ 282Kbps.” I wanted to throw out a few details on other options that we are looking at (We hit about 180 users @ 340 Kbps).

Currently we are using Windows Media Services for live streaming, I’ve written a few posts on our setup:
Tech we Use: Part 2 – Streaming and Recording
Live Windows Media Streaming Mini-Howto
Second Streaming Server

For hosting Windows Media Services we are using a dedicated Windows server at Serverbeach, but there are several providers that specialize in streaming that friends have recommended:
ChurchQuest – Live streaming starting at $8.95 a month, recommended by David Morcos.
Christian Video Channel – These are the guys that Jason is currently using for their undercover live feed.
VitalStream – Karim Guirguis, a buddy of mine over at the American Bankruptcy Institute uses them extensively.

Light Cast Media is currently serving up video on demand (using Flash) and has a simulated live service in beta. A true live service is in the works.

Neokast is a brand new service that is currently in beta. Cringley says that they use “peer-to-peer technology to effectively emulate a multicast experience.” Advantages are high quality, little bandwidth requirements, unlimited users and almost no cost (If you aren’t charging your viewers, the service is free). There are a couple disadvantages though, there is a required client download and they only support Internet Explorer/Windows as of right now (Mac and Linux versions are in the works).

I’ve tried the Neokast client, they offer multiple quality streams, the video at 800k looks really good, and buffering only took a few seconds. They still haven’t enabled beta users to publish “videokasts” yet, I am looking forward to trying it out.

More on Neokast:
Neokast Blog
The $7 TV Network: Neokast brings multicasting to the masses.
Neokast, Emerging from the Shell

Microsoft has been creating quite a stir over the past few days with their announcement of upgrades to their Silverlight product, which will support live video streaming. Once again, this looks like it will require a download, and it doesn’t look like there will be support for Linux users any time soon. I haven’t had a chance to play with the beta yet. I am not sure if there are Silverlight live streaming service providers out there yet.

Live streaming is gaining popularity this year at St. Mark’s. On Palm Sunday, we had 145 simultaneous live viewers running a 340 Kbps (320×240) live stream.

Windows Media Services

Unfortunately, the bandwidth on our dedicated server began to choke and users were complaining that the service was a little choppy. We had already ordered a second server from 1&1 early last week to help offset the load, but it still isn’t ready. I called around a few buddies and thankfully Emad volunteered a box he has in a different data center.

Setting up additional Windows Media streaming servers is pretty straightforward:

  1. Make sure that the publishing point on your first server is up and running, see my Live Windows Media Streaming Mini-Howto for more details on this.
  2. Login or remote desktop into the second server and open up the Windows Media Services MMC – it should be located under Administrative Tools. (Windows Media Services and its MMC can be installed using Add/Remove Windows Components).
  3. Right click on Publishing Points and choose Add Publishing Point (Advanced)…
  4. Publishing point type: Broadcast
    Publishing point name: Use the same name that you are using on your first server
    Location of content: This is the publishing point on your first server.
    Content type: Remote Publishing PointAdd Publishing Point
  5. Click Play on the bottom of the Monitor page for the new publishing point.
  6. Test out the stream from another computer by browsing to mms://server2/publishingpoint.

Once the second server is up and running, you can make it available to your end users in a couple different ways:

  1. You can list links to both servers directly on your website and place limits in the properties section of your publishing point so that when one as at capacity they will be forced to use the other.
  2. You can setup Round Robin DNS – create A records with the IP addresses of both servers using the same host name, users will be directed to the alternating IP addresses, should create an approximate 50/50 load on the servers. You must use the same name for the publishing point on both servers for this to work.

We actually wanted to place about 2/3 of the load on the first server so we created two A records for the first and one for the second.

This method can be used to add any number of additional Windows Media streaming servers.



Monday night we had a Bible study at our house, it was given by Bishop Paul, the bishop of Mission Affairs. By the grace of God it was attended by over 70 people (I think that is a record for our family room). During the day I got lots of requests to stream the Bible study, so I put together a quick solution. Thank God, it worked out great and we had 33 people streaming. Here is a mini-howto on how I had it setup on Monday.

Note: This is a very basic setup, see my previous post, Tech we Use: Part 2 – Streaming and Recording, for more information on the full setup we use at church.

Items Needed:
Video Camera with Firewire
Windows PC with Firewire
Windows Media Encoder 9 (free)

Optional:
External Microphone
Windows Media Services

Before starting you will need to figure out where you will host your stream. Windows Media Encoder can host up to four streams which is about the max most home/office Internet connections can handle. To support more clients, we use a dedicated Windows server running Windows Media Services on a 100 Mb connection at ServerBeach. Other options are services such as Christian Video Channel, VitalStream or ChurchQuest (plans start at $8.95/month).

If you will be hosting on your own, make sure you have sufficient upstream bandwidth. We usually run a 387 Kbps stream, which with a 2 Mbit upstream you could serve 4 to 5 clients. (There is quite a bit of overhead due to buffering, etc.) Also, you will have to open a few ports on your firewall.

For this example we will be using our dedicated windows server.

1. Connect video camera to PC via firewire, Windows XP should automatically detect it.

2. Fire up Windows Media Encoder, the new session wizard should pop, select the “Broadcast a live event” wizard.

Wizards

3. Under Device Options, select your video camera for both the video and audio (unless you are using an external mic connected to the sound card).

DeviceOptions

4. We will push to our Windows Media server, this avoids opening inbound ports on the firewall.

Broadcast Method

5. Server and Publishing Point
Server Name: DNS or IP address of server running Windows Media Services
Publishing Point: Choose a name for your stream (does not need to already exist)

Publishing Point

6. Under Encoding Options we chose the default setting of 387 Kbps under “Live Broadcast video”

Encoding Options

7. We usually don’t archive the file using the streaming box because of the reduced quality (recording quality is based on the Encoding Options we just chose), we just slide a tape into the camcorder.

Archive File

8. We don’t include any videos for an intro or conclusion, but you can easily do so.

Include Video

9. Add in all the relevant information about your stream.

Display Information

10. Review the settings and click finish.

Settings Review

11. You will be prompted for a user name and password, enter an account that will allow you to create/manage publishing points on the streaming server.

Broadcast Password

12. Start Encoding

Start Encoding

13. Tell your users to point their web browsers to http://servername/publishingpoint

Kem Meyer answered a question that we get a lot as well – “How do I stream our services?” She links to posts on how Granger does streaming and audio recording…St. Mark’s has a similar setup with a few differences. Here is how we do streaming and recording:

Cameras: Sony EVI-D100 Pan/Tilt/Zoom and two fixed security cameras
Live Production System: NewTek TriCaster
Video Capture: Pinnacle Dazzle DVC-80 (External Streaming) and an Osprey-100 (Internal Streaming)
Encoding Computers: Sony Vaio PCV-RS420 P4 2.8, 1 GB RAM, 120 GB Hard Drive
Hosting: Basic Dedicated Windows server with 100 Mb connection upgrade at ServerBeach ~ $170/month

Camera Control: RS-232C CAMERA CONTROL SW (Software for controlling PTZ on Sony EVI-D100)
Encoding: Windows Media Encoder 9
Audio Recording: Audacity
Server Software: Windows Media Services 9 Series on Windows Server 2003

Storage: 2 terabyte Infrant ReadyNAS 1000S

Our three cameras and an audio mix feed into the TriCaster which records the video selected video as a high quality AVI file. Note: The TriCaster has streaming capabilities built in but it cannot stream and record simultaneously (Apparently a feature in the new TriCaster Pro). We take S-Video into the Osprey-100 and audio to the sound card to encode a 2137 Kbps stream that we use for internal clients (social hall, gym, nursing room). This is setup as pull and the clients connect directly to the encoder (max 4). We take an RCA video out in the USB Dazzle and audio to the soundcard to encode a 340/109 Kbps stream and a 54/24 Kbps audio only stream which are pushed to a server running Windows Media Services in a data center. With the 100 Mb connection at the data center we have found that we can reliably server at least 150 live streaming clients at this bandwidth without any major loss of quality. We also record audio on the same machine using Audacity and export to MP3 when the recording is finished.

All video and audio recordings are stored on our NAS and backed up to tape. Audio recording are uploaded to Orthodox Sermons. Video archives are not yet available for public access but hopefully will be available soon.

We also are looking forward to working with other streaming technologies such as Flash and QuickTime but haven’t found the time to evaluate them yet.

If you have any questions about our setup or would like any part of it explained in more detail, please comment here.

« Previous Page