Ever since the breakthrough of YouTube more and more people have been interested in video online. The next step is to provide live events around the world for others to watch. In the past this would usually have taken a team of video and computer personnel to produce. As streaming has become more popular the tools to do so have also become more commonplace and accessible. This allows smaller operations to have the ability to stream events live even when the veiwership never breaks 100 viewers without breaking the bank. Lets take a look at some of the technologies used.
To start lets talk about the two dominant streaming solutions: Adobe Flash and Windows Media Video (WMV). WMV has long been the de-facto standard when working with live streaming video. One of the biggest live events that used WMV was the 2007 Live Earth where it was reported over 9 million video streams were served. While the server power behind such a feat is mind boggling it still shows that with the right setup one can truly reach a global audience. At the time MSN had declined to comment how many of the streams were concurrent which is one of the most important metrics when trying to reach a large audience.
Next up is the relatively new format and the subject of this article, Flash, which can utilize the Sorenson (H.263), VP6f, and H.264 video codecs and has support for FLV and MP4 containers. Flash has long been popular but it first became notable when put to use by YouTube to serve all of their videos. While Youtube utilizes primarily progressive downloads the format is quite capable when it comes to streaming. Flash has one of the widest footprints of all video platforms across many operating systems and devices. A newer codec you can utilize is H.264, also called MPEG4 Part 10 – Advanced Video Codec (AVC). This newer more advanced codec can maintain a higher picture quality while using a lower bitrate. The trade off is that it requires the viewers to have one of the latest versions of Flash (version 9.0.115 or newer), and it also requires a more powerful computer to process the video.
While both are capable formats, we will be focusing on Flash for a few reasons:
- There is an open source solution for a server that has a lot of potential.
- There is also a number of Flash players that can display the live footage to the world.
- It is said that 98% of the computers on the internet have Flash.
- If you are programming savvy and have Adobe Flash you can even go as far as to build your own player
We would recommend starting with the excellent JW FLV Player (utilized on this site) and work your way into skinning it (requires Adobe Flash still) and then program your own player if you still find the need.
As you can see, a high-end server with Flash Media Server 3.0 has the potential to serve out to a lot of customers. This is limited by the bandwidth available to the server, and hardware. If you are going over a few hundred viewers you might find it best to utilize one of the all ready established CDNs (Content Delivery Network) that have hundreds of servers networked and ready to take on all of your viewers.
Alternatives to Flash Media Server include Wowza and Red5. Red5 is a free alternative.
What you need
To get started you will need a few things:
- A camera that can connect and send video to your computer via firewire or USB
- A computer with firewire or USB
- A streaming server to connect to
- Internet connection that can sustain your bitrate to upload to your streaming server
- A webpage to display your video to the viewers or a link they can put into a media player
Now if you do not have a firewire port on your computer you do have the option of getting a USB Capture box that can take S-Video, or Composite RCA and feed it into the computer.
Streaming Server Options
Now that you have the tools to stream the video, what are you going to stream it to? At this point you have to decide which server option will work for you. If you are streaming in an environment where you need to be able to get quick support you are probably better off going with FMS or Wowza which are both just shy of the $1,000 price mark. If you are OK with tinkering with an open source project and setting it up You can look at the free alternative known as Red5. I was able to successfully setup Red5 on my dedicated server and use its built in demos to stream a nice image to it. I did run into issues when trying to stream 16:9 content which I have yet to resolve. What is important to decide and account for at this time is the number of connections (your audience) you will get for your live stream.
If you have a decent dedicated server with a 2GHz CPU and a GB or more of ram on a 100mbit line it is possible to host around 100 viewers with a decent video resolution. After the 100 viewer mark your milage will vary. If you are looking to host more viewers this is where you will probably be best served by looking at CDNs which can be found on Google. Keep in mind a quality CDN will not come cheap.
The good news is that if you have a dedicated server and a little know how you can setup a free server solution. You can even run the Red5 Solution on a home machine running Windows or OSX but your connection upload speed will probably only allow one or two connections.
The Flow of Data
The flow of data is fairly simple to follow but it is good to know. First your camera will capture your image and send it to your computer. This will either happen over the firewire connection or via the capture box. This data is fed into the encoder. The encoder is what converts your DV, HDV, or other native format into the streaming format, such as H.264. The encoder will follow the settings you select so that the stream fits your specifications to send it along to your streaming server over your Internet connection. The streaming server picks it up from there to send down to the viewer. Depending on its setup it can redistribute to other servers that are closer to the viewer as well (this is what the CDNs do, for example). From there the Internet takes over and delivers it down the maze of pipes to your viewer’s screen.
Real World Application
One real world example of this would be what we use to stream sporting events at Rollins College. This NCAA Division II school streams a majority of their sporting events for friends and families of the players to watch.
To accomplish this we use a few tools:
- Canon XL-H1A HD Camera
- Laptop with Firewire port
- Canopus ADVC110 Converter
- Panasonic DMR-EZ28K DVD Recorder
We set it up so the camera feeds the DVD recorder. This gives us an instant copy of the game. The DVD Recorder feeds a Canopus box which is the feed for the internet stream. One possible addition to this setup would be a distribution amplifier. This would allow each device to get a clean signal without degradation. Because we are only passing through on device before the internet stream capture the loss is minimal. The stream is then compressed and sent out to a large CDN. In this case we went with a CDN because the average viewership is over 200 concurrent viewers.
Summing it all up
Hopefully this information has given you a small grasp on the huge world of online video streaming as it is by no means a complete view. If you have any questions, comments, suggestions, etc… please feel free to leave a comment or contact us via email.
I’m thinking about splurging on Wirecast ($379) to spiff up my 1 camera production and stream pre-recorded commercials etc through Livestream.
1. Which has the better streaming reliability? Wirecast or using Flash Media Encoder (FME)?
2. Which has the better picture quality? Wirecast or FME?
I stream on Sony Vaio because FME isn’t yet supported on MAC but I’m drawn to the ease of using Wirecast as it seems like it was developed by some Apple types?
Both have been very reliable for me when I have a stable computer. If things are kept up to date and running smoothly I can stream for hours at a time with either software without issue. The best picture quality would probably goto FMEL (Flash Media Encoder Live) by a hair. But when you factor in you cannot do titles or anything else with FMEL I prefer WireCast. WireCast does indeed run great on a Mac. I use Wirecast on both Macs and PCs and have no issues switching back and forth.
I am a video streaming noob so you have been warned :)
I am working on a php project for a client in Paris who requires live streaming. Estimated audience will be 500 to several thousand. (consumer electronics, demonstration videos and interactive chat area). We also need to record/archive the streams for later poscast diffusion.
What we do not understand fully is: does the production company need a streaming server in addition to a CDN like simpleCDN or can a CDN take care of the streaming server requirements?
Would you recommend a French/EU based CDN versus US based if the viewers are mainly located in France
Well most big CDNs have a global presence so you should be able to use any of them and still get servers in france. There maybe some local companies that only have servers in france but I am not familiar with them. Once you get a CDN they do all the stream. Your production company will send the stream to them, and then they do the rest. So if you have a CDN you shouldn’t need your own streaming server unless you want to use it for small events and want to save money. I would recommend looking @ Highwinds for a CDN. Remember you get what you pay for. :)
Thanks Josh for your fast reply and valuable expertise, we will look into Highwinds.
David , for a Large scale,high quality & cost effective streaming ,you should look at Octoshape Infinite edge. We can help you to get Octoshape deployed on top of Highwinds CDN from the US or Europe
Really appreciate your answers. I use smart FTP server. How do I send the video from adobe flash to our FTP server? Unsure how to link the two. I’m sure the fms URL is what I am missing, but not sure where I get the correct URL from?
Flash Media Encoder Live does not send to FTP. Only RTMP. If you want you could have Flash Media Encoder Live save the file to disk as an f4v file and then Upload that to your FTP server using your FTP Client. If I misunderstood your question please let me know.
By saving file to disk will that still allow a livestream to be sent to viewers? I’m still new to the live streaming, so not very familiar with RTMP. Is that the best means to sending the stream out over my website?
As I talked about in the article in order to do LIVE you need to have a server that is setup to do a live broadcast. The 3 software solutions that I know of for flash are: Adobe Media Server, Red5, and Wowza. You need to have one of those installed on your server and running properly for Adobe media encoder live to connect to so people can watch your video Live.
I want to use streaming via mobile, is any one know where can I do..
Now I use streaming via my cam…
I have seen people utilize a laptop and camera along with a 3G wireless card but never a cellular phone to do live streaming.
I want use streaming when I am traveling in car or by walk, I can not carry my laptop with me..
Check Andres’ Post @ http://www.simplethoughtproductions.com/2008/12/03/streaming-live-video/#comment-4386
Ok, to do live streaming with your mobile phone you have several options. In Europe is very popular Bambuser. You also have Livecast.com, they’re based in the US. By using proprietary software you download to your phone, and connected either through 3G or Wi-Fi you can live stream directly from your mobile.
Cool stuff. So you still have to have Wifi or 3G but it would be nice to not have to have a laptop and camera. Just be aware of what your camera phone video looks like :)
Is it possible to run your dv device straight to laptop via 1394 using flash live 3? In process of ordering canopus converter. I continue to get “profile validation error” and “problem with video capture device.” are there certain camera and computer settings I’m forgetting? It is a panasonic ag-hvx200 and I’m running MS Vista.
I usually hear about this issue when the camera is in HD mode but it is usually with HDV Cameras. Flash Media Encoder Live can only handle DV streams. Nothing HD as far as I know.
It helps to know that.
Do you know where I can get some docs or instructions on how to set this up?
Do any consulting?
Once you get a live bucket via Simple CDN they send you some guides on using JW and Highwinds. I do consulting so if you would like some direct assistance in getting started I can be contacted through this page and we can work something out.
Im doing a live event and I am planning to use simplecdn.
The question is, have any of you done the live events with simplecdn, mac, wirecast?
If so can you share?
I am planing on using jvplayer
Mac => Wirecast => SimpleCDN => Users.
I ask because the simplecdn has conflicting information on support of wirecast and live streaming.
Yes, the last few events I have done have been with Wirecast and Simple CDN. Note that SimpleCDN is now using Highwinds. The reason they say it is not supported is because it is a recent development for wirecast to be able to stream to an RTMP server. They just need to update their info.
I have started to use SimpleCDN and now they offer access to Highwinds. This all works fine for live streaming and for single video on-demand files. But I’ve come up against a problem that I wondered if you’d encountered.
I use the JW player, and when running video on demand files before moving to SimpleCDN I loaded the player with a playlist. Now after moving over, and putting these files on Highwinds I am provided with a SMIL playlist for each file I want to stream. This works well for single files, but I still want to load a playlist of URL’s and find I’m getting stuck.
Have you any experience loading playlists from Highwinds into the JW player. If so let me know I’d like to learn a little.
Yeah, you need to set type flashvar to highwinds. Once you do that you will be set. It will also get the streamer from your smil file so you don’t have to provide that.
Your file should look somthing like:
Magic and thanks. I had been going around in a little circles on this one. With your playlist structure I amend it and add an extra track and it all worked. So thansk for that. – Martin
is there a way to connect the camera to the computer through wireless/wi-fi?
I’m trying to do an outdoor where I need to be able to move around, and it’s very hard to do that with cable connection.
Indeed there are ways of transferring the video to a receiver wirelessly which then could feed a capture box. Most of these devices are a little pricey and their range depends on power and objets between you and the receiver. Google WIreless Video Transmitters.
Josh, thank you very much for your time!
As result Canopus ADVC 110 can work and do it job well with latest version of Wirecast software for Mac. Video & Audio works fine. IMHO quality of video is a little worse in comparing with FLME, but Wirecast have an embedded AAC audio codec which gave a good combination in result.
Issue with initialisation of ADVC110 under Windows can be linked with drivers problem and need additional investigation.
Once again thank you for your great support =)
OK, please note the driver issues talked about above seem to be linked to WIndows on Mac. Not windows on a PC.
That’s right =)
Another case is video quality with ADVC 110.
Before ADVC110 I had use the Pinnacle Studio MovieBox 510 via USB connection with boot camp as well. It works quite well. Viewers have a good picture quality and good framerate (24-25 fps).
With same settings in FMLE and ADVC110 viewers reported about lower picture quality and lower framerate. I had a fillings that ADVC110 tries to compensate fast moved objects and they are unsharp.
I thought this linked with CPU power on my computer and tried to reduce a while the output image resolution and the bitrate without success. Also a whole picture is looks unsharp. Probably interlaced input impact on this, but my games with “deinterlace” checkbox gave the same picture (as this settings not working)
So the questions =)
1) What input resolution you use?
2) What output resolution you use?
3) Are you mark “deinterlace” checkbox in FMLE and does it works?
4) What bitrate you usually use?
5) What codec (VP6 or H264)?
6) If H264 what profile and level?
1.) Most events are done @ 720*480 NTSC 16:9 DV Source
2.) Most events are output @ 480*270
3.) I do deinterlace and check that box
4.) Video is around the 450 mark
5. h264 all the way
6. Highest profile and level allowed
email me via the contact page of this website. I can setup a demo replaying some recorded material through the canopus box so you can see what it looks like on my end.
Why are you think boot camp is a whole other issue?
Jumper setting is following:
JP2 – ON, JP6 – ON, all others – OFF
JP2 = Turn on mode, Analog and Digitial, On for me is DIgital so Setting it to Off might help with it powering on in the correct mode.
I think of boot camp as a potential issue because you said you are unable to control it when its plugged in and it is windows. A reboot into OS X fixes it. Perhaps there is a driver issue? I cannot offer much on this as I said I only use Windows when using FMLE.
Unfortunately JP2 OFF mode not help to run it under Windows.
I will try it with clean Windows laptop soon.
The only thing it should do is allow the device to power up in Analog mode so you don’t have to switch it. If switching does not work in windows it might suggest that the Firewire power is not sending the proper amount of power.
I’ve bought ADVC 110 today and have few issues with it.
1) It won’t work with PAL sources correctly. I can see them only in b/w and splited at half of screen. In NTSC mode all fine. Did you have something like that?
2) I can’t connect it to FMLE 3.0 under Windows. Program can see the device and connect to it, but no video there at all. I can’t find any documentation what to do with it under Windows and FMLE.
1.) I don’t have a pal source to test with. But under the device are jumpers. Jumper 6 is to switch between PAL and NTSC. If you dont have it set correctly it will cause issues.
2.) I had this issue as well but it was because I was not set to the correct input. Jumper number 2 will let you set the default startup mode. I assume you will want to set it to analog. If it is on digital nothing will show up. Also, if you are plugging the device into firewire 4pin (the small one) it will need additional power to work which might be your error. I went to Radio shack and got a small $15 adjustable power supply and it works like a charm.
Sorry for the delay!
Sorry for delay with answer.
My first ADVC 110 was broken. I had replace it yesterday and PAL sources start working. Hope it will not down tomorrow within my live session.
Issue with Windows is still at place. If I plug it in Windows (w/o external power supply) I can see the 2 led lighting and press the input source button not help to switch between it. The only working scenario is plug it and switch to right source under OSX and then reboot to Windows. Then device keep current input (analogue in my case) and FMLE display the picture.
Also something strange happens with sound. It level is very low and I can’t control it in FMLE. Properties button for sound display the small AVC video recording device control window with sets of not working buttons =)
Did you have any issues with sound? Does sound level was good?
It sounds like you are using boot camp which is a whole other issue. I have only tested and encoded when in windows on a PC.
What are your jumper settings on the bottom of your device (the white switches)
350Kbps for video and 48Kbps mp3 mono.
In reality I will probably invest in the AAC plugin as it sounds much better but for talking heads these bit rates seem to do really well.
For sports I might push up the video to 400Kbps
Now I’m a bit confused.
You are using Adobe Flash Media Live encoder 3 as I do. The size of the image your encoding is 480*270 (16:9) image in h264.
And you use 45Kbps as the encoding level, this seems really low. What rate are you encoding the audio at?
45KB a sec. So far all feed back was positive for the last stream we used with SimpleCDN. I had viewers mainly in the US in Florida but I also had some people in Germany and The Netherlands use it without issue.
It is always interesting to talk costs. I thought I would look at a comparison between the Amazon/Wowza vs. SimpleCDN. Looking at the simpleCDN pricing examples for small live streaming, they estimate the charges for a 1 hour event, 250 people @ 300Kbps as $2.85. (Plus some proportion of your $75 setup fee) The estimate is based on 32GB of transfer
If I use the Amazon/Wowza charges, there is no setup fee, rather a monthly $5 fee. But lets ignore these for both. For your computing resource you would pay approx $0.5 for the hour, then for 32Gb you would pay about $6.40 (It’s based on $0.12/GB for streaming in and $0.2 for streaming out)
It looks like SimpleCDN is cheaper than Amazon for the sort of stuff I am planning to do. I think that I will also look at SimpleCDN and test out what the service level is. The advantage of Amazon is that I am in complete control of the “viewers” level of service by selecting the size of the computing resource. The disadvantage is that I have to “scale up properly” it isn’t automatic.
How much feedback have you had from viewers about the “smoothness” of the live stream. When you mentioned above that you stream at 45K, do you mean 450Kbs or 45Kbps?
I have done a little more work on the streaming server solution. After setting up the 10 stream Wowza on my server, I noticed that Wowza have provided a service via Amazons EC2 system. I signed up for Amazon Web Services and as they say after that the rest is history. This method of using Wowza and Amazon as well as having your own test server running Wowza gives you a great platform for developing live streaming.
You only run the Amazon/Wowza server when you need it for as many hours as you require, you only pay for the bandwidth you use and you can kick off small computers as well as large computers as your audience deserves. In addition you can set up an Origin/Edge server network for larger audiences.
Below is the link.
I have now launched a local service in the area I live using this platform as well as integrating the JW player as you wrote about in your initial post. (www.CumbriaLive.tv)
I need now to learn about how to use two camera streams and switch from one to the other. Uptil now I have just streaming from one camera directly to my laptop, encoding the stream using Adobe’s media encoder. So I guess I need a mixer of some sort, then maybe one of the Canopus products to then feed my laptop.
Any thoughts / suggestions on the most cost effective way of doing this would be appreciated.
Very cool stuff Martin. I saw that wowza was going with this model but I have not used the Amazon services my self. I was very close to trying this option when I found SimpleCDN. The bennifits to me as a business were that I had a solid price scheem that didnt depend on the process size etc. so I could give customers a rate card saying if your show is x long and x people watch it costs this much. I would love to hear a follow up on how Amazon works out for you and if you are willing, a cost per customer watching an hour.
For live streaming multi-camera production, there’s a brilliant, and very cost-effective off the shel solution, that really works great. It’s called VidBlaster, and it has all what a streaming amaeteur or professional needs: multi camera, overlay graphics, pciture in picture, live connection to Bambuser, Livestream and works as a virtual device for Adobe Flash Encoder.
Yes Andres, I highly recommend Vidblaster for mixing cameras/layers/graphics players etc we use ina our Rockabilia.tv [project after trying almost everything and is a perfect affordable solution, we use as mixer and send the video to Flash enoder live 3 and from there to our server (we use diferent servies) and works like a charms
No Problem. When I get more time this summer I hope to write some more articles on it to share my knowledge on live streaming and learn more my self.
Thank you very much for detailed answers and nice article!
You wrote “We set it up so the camera feeds the DVD recorder. The DVD Recorder feeds a Conopus box which is the feed for the internet stream.”
Am I right with connection scheme you were use:
Camera Firewire Port Out -> DVD Recorder Firewire Port In -> DVD Recorder Composite (Audio & Video RCA) Out -> Canopus Composite (Audio & Video RCA) In -> Canopus Firewire Out -> Computer Firewire In
Or you have another setup. If yes could you share it.
Also could you share laptop model and manufacturer.
You could use that path. The model of DVD recorders I use does indeed accept NTSC DV video in the form of a 4 port fire wire cable. I however use the RCA Cable out of my camera to the RCA in of the DVD recorder so my camera can do a recording in HD while the stream and DVD is powered by a SD Signal. Hope this helps.
The laptop is a Dell Latitude D620.
Thanks for info and incredible fast response =)
Few more questions:
1) Do you happy with Canopus 110? Does it produce good output quality? Did you have a chance to try ADVC300?
2) What encoder software you using?
3) What CDN you choose?
4) Have you stream HD-streams?
5) What type of internet connection (wires or wireless) you use? If wireless had you any issues with it?
1.) I am very happy with the Canopus 110. It has done everything I have ever asked it to do with grace. I even got a cheap power adapter from Radio shack to power it when it is using 4 port Firewire (this isnt needed if your laptop or desktop has 6 pin which will power the device)
2.) I use the Flash Media Encoder 3.0 It is a free download once you register with Adobe.
3.) I tend to use simplecdn.com and Multimedia Pros.com for bigger events. If they are smaller I run them on my own dedicated server.
4.) I have streamed HD before but not live. Most of the time the biggest request is to make sure that as many people can watch the stream as possible. Flash only recently allowed multiple bit rate encoding and uploading. So now it is more of an option. But I still have not tried it my self for a live event.
5. I stay away from wireless as much as possible. In a live event I tried to minimize as much latency as possible. Wireless ads to it and it is also more prone to drop outs. Now if you have a rock solid wireless in a controlled environment I am sure you could use it but I always go with a wired connection. The next thing on connections is to make sure there is enough bandwidth to upload with. My average stream is 45K with over head. This allows a nice 480*270 (16:9) image in h264 which looks great for a talking head event at full screen. If its for sports with more motion you will want to put more bits to the video than audio probably.
Price is something to take into account. The other which I probably could have talked about more in my article is most Server Solutions include rules in the TOS that stipulate a violation if your server monopolizes the network. Most don’t care about you peaking your connection for a while but if you are planning to stream constantly it might be something to look into. The second thing is that on bigger events you will want to have your servers all over the world geographically so people can connect to the closest/fastest server and if their are connection issues on backbones you will not be left in the dark which can happen if all of your servers are in one location with one host. That is when you get into Edge/Origin Setups which is another topic for a more detailed article. :) Most of this though applies to people who have a lot of viewers, not the average web cast that goes to a handful of people.
It was the price of the Mogulus Pro option that started me looking into doing it myself. Mogulus Pro seemed quite expensive for bandwidth when I compared it to the charges that my web hosting provider would charge me (Server Intellect). I have nothing but praise for SI, both support and price wise, so would be happy doing a little development work in order to run on a platform that I could have the confidence to expand.
I have also installed Wowza on my server as well with the 10 connection limit. I was able to get it to do 16*9 out of the box. I have now found a support ticket in the Red5 site where they have identified the problem so it should be fixed with the next update. Mogulus looks pretty interesting. The pro account actually seems like a fair price if you are making money off your videos but I have not tried them yet.
Nice article. I just started to test live streaming myself using Mogulus, a free service based on Wowza. I was interested in setting it up myself (rather than using Mogulus) on my own servers, more for understanding than anything else, there are a few good services out there once you get bigger.
I tried installing Wowza on a Virtual Private Server where I host my websites and it has worked really well so far, unlike Adobe’s FMS you can try using Wowza for upto 10 simultaneous connections without any charge. Good for dippping the toe in the water. – Martin