Inexpensive, commercial-free live streams with Wowza and EC2

After streaming several live events with Livestream and Ustream, the advertisements that they embed have become increasingly intrusive.  Ustream now inserts video ads into the middle of a webcast, which will result viewers missing parts of the show.

Someone suggested running Wowza Media Server on an Amazon EC2 instance.  For occasional webcasts, combining the $5/day Wowza license with $0.26 per hour for EC2 and the free Adobe Flash Media Live Encoder (FMLE), and you have a very affordable and powerful system.  And it’s not too hard to piece together.  Here’s what you’ll need:

  1. An audio/video source, obviously.  This can be as simple as a webcam.  We already had an s-video switcher and a sound board at the venue, so we used the switcher to choose between a camera, DVD player, and computer (for graphics).  We combined the s-video and aux outs from the sound board with a Canopus ADVC-110 analog to digital converter.  That connected to the broadcasting laptop via firewire.
  2. To send the stream to the media server, you need some software.  Adobe FMLE works well and is free, and it’s what we used.  It doesn’t let you do titles or switch between video and graphics, but we did some of that with the s-video switcher.  If you have $500, you can invest in Wirecast, which I’ve heard very good things about.  I tried XSplit, but it didn’t like the Canopus device.
  3. Sign up for EC2 from Amazon Web Services (AWS) and spin up a Wowza instance.  Amazon offers preconfigured Wowza servers that will do everything you need for simple webcasts.  There are good instructions here.  I did notice that I didn’t need to create the security group mentioned in the instructions — Amazon created one automatically for the Wowza server.
  4. Start streaming from FMLE or your other streaming software to the Wowza server.
  5. Embed the stream on your web site with a player like JW Player (free for noncommercial use). If you want viewers to be able to use iOS devices, make sure that you configure your stream according to the tips in this thread.  Here is the code that we used on our web site to enable regular browsers in addition to iOS devices:
<div id="mediaplayer">Loading the player ...</div>
	<script type="text/javascript">
	  jwplayer('mediaplayer').setup({
	    'id': 'playerID',
	    'width': '480',
	    'height': '360',
	    'provider': 'rtmp',
	    'streamer': 'rtmp://ec2-nnn-nn-nn-nn.compute-1.amazonaws.com:1935/live',
		'file': 'livestream',
	    'modes': [
	        {type: 'flash', src: 'jwplayer/player.swf'},
		{type: 'html5', config:
			{
			'file': "http://ec2-nnn-nn-nn-nn.compute-1.amazonaws.com:1935/live/livestream/playlist.m3u8",
			provider: 'video'
			}
		}
	    ]
	  });
	</script>

If you want the Wowza server to automatically record the stream, it’s not difficult to set up a new stream type called “live-record” on the server.  Just point your streaming software to that, and you’ll have a file in the content directory of the server when you finish the webcast.  Look here to get started.

I hope this helps someone get started with commercial-free live streaming!

 

Leave a Reply

Your email address will not be published. Required fields are marked *