I am using FMLE (for mac) with watershed ustream service and they claim that you can output HD to the web using FMLE. I am fairly new to the world of video streaming and don't entirely understand all of the codecs and what not, but is there somewhere where I can learn a little more about streaming this in High Definition?
My camera that I will be using is an HD (production quality) camera so that camera is not an issue.
I am also going from camera to camtwist then FMLE then the server
I'm using CamTwist because its free and allows me to switch between desktop view and live video camera easily.
Yea, thats not really what I was looking for.. IS there a way to stream HD using the tools that I have?
I am asking this because this is what I wasn told.. I was told that I can adjust the setings on FMLE to output HD to the server..
To transfer the HD content from the camera to FMLE, you need a capture card capable of capturing HD sizes. This capture card will be available in FMLE and FMLE will encode the raw HD content and push it to FMS (hosted on Ustream in your case).
Camtwist is just a software, commonly used to apply graphic effects over a video. It may let you capture your screen in HD size but to capture a live feed you need a capture card.
You can use your camera in DV mode using firewire port of MAC. But DV is not HD.
FMLE doesn't support HDV out from a camera because it is mpeg-2 encoded, whereas FMLE needs raw input.
I hope things are clear now. Let me know in case of doubt.
Thankyou for clarifying..
I am not really going to have the time nor the budget to get a capture card now, but for the future it is good to know. Is there any type of external capture device for a mac? We are using a Macbook Pro which does have firewire and that is what we used to connect the camera to the laptop.The other reason I don't want to install a card is because I am lending that laptop and its not technically my business, so once the "client" buys his own laptop I will suggest it to him
I guess in the future we will consider a capture card if its going to make a big difference in the image quality. I understand now that my computer's video card just can not capture anything that big so you need a third party.
Honestly I am a lowly website developer who got roped into this video streaming service setup!!
Basically the goal here (just incase you were curious) is I design a website for corporate people to log in and get their own account and sub domain> Then the Audio/Video guy (hes a professional sound engineer) gets hired to do the PA system and sound mixing for a large corporate seminar. The corporation would like to stream the event as well, and since we have a guy there on staff already mixing the audio, we should technically be able to just mix the video as well and stream it to the client's account
Then the client can set their price for the stream and let attendees sign up and pay to view their stream. So the client pays us to be there (they would be paying someoen to be there anyway because they needed a sound guy) and they get the added service of video streaming AS WELL AS the ability to make MORE money on their seminar by taking E-vites and turning them into ticket sales.
what do you think about this?? Any thoughts in general?
Is this essentually an external caputer device that would work similarly to a capture card?
If your aim is not HD, DV port on Mac book pro will work fine.
The dazzle device which you have given in the link is unlikely to work with FMLE. Please check with them and confirm whether they output raw HD or HDV.
Below are some of the unsuccessful attempts of using dazzle with FMLE:
Regarding your stated goal of adding video streaming to corporate events, there's is definitely a market for this but HD video streaming is not as simple as plugging a camera into a computer and streaming. If you are happy with SD quality streams in a postage stamp sized window on the screen, then you can do this relatively simply and for very little cost, but capture, encode, and live stream high quality 720p or 1080p is quite challenging and requires the right tools and some coming up the learning curve.
For full disclosure, I work for Kulabyte and we produce live video encoding and streaming software called XStream Live 2 that produces very high quality video at lower bitrates than other encoders on the market. In addition to the encoding software, we do a number of live events and I can give you an example of the things you need to consider for a really good HD stream.
First, you must have a good source. A professional camera with HD-SDI and embedded audio is ideal but HD over component is ok as well as long as cable runs are not too long. If you're cost conscious, some of the smaller cameras with HDMI out can be used also. If you have multiple cameras or want to be able to mix in existing video content or do logo overlays, then you'll need a switcher. We have a number of customers using the TriCaster TCXD300 portable mixer. Note, this mixer has encoding using built-in FMLE, but our customers use our encoder instead because quality and bitrate issues with FMLE (more on this later).
Next, you need a high quality capture device. Since Blackmagic was already mentioned, I'll stay on that thread. For our encoder, we can use Blackmagic Intensity Pro ($200) for HD component or HDMI input or Blackmagic DeckLink SDI ($300) for HD-SDI input. For a more flexible setup, you can get the DeckLink Studio 2 ($650) or HD Extreme ($850) which take component, HDMI, and HD-SDI. These are all PCIe cards. Note that Blackmagic has some newly announced USB 3.0 based capture devices like the DeckLink UltraStudioPro that are just now showing up. These will also be a very nice option Regarding capture devices for FMLE, if my memory serves me, FMLE only supports HD input from an Osprey card, but my information could be dated.
Next you need an encoding computer with encoding software. For FMLE and Kulabyte's encoder, you can run these on off the shelf hardware and operating systems (Kulabyte is Windows only, not OSX, but you can run in bootcamp on a Mac). The other encoders out there are a proprietary H/W and S/W combinations. You also have to think about how to connect the video capture card to the computer. If it's a desktop, you need an availabe PCIe slot. If it's a laptop, you can get a PCIe expansion box from Magma to host the capture card and then you plug that into the ExpressCard slot on the laptop We do this all the time and it works great. If your up for getting a new laptop someday, HP has a 15" laptop with 1.7GHz i7 and USB 3.0 and Dell has a Precision laptop with 2.0GHz i7 and USB 3.0.
Remaining on the topic of the machine, to encode HD you need some horsepower. With Kulabyte's encoder on a 1.7GHz i7 laptop, you can encode a 720p stream plus a couple SD streams, but Kulabyte's encoder tends to be pretty efficient. I'm not sure you could do the same with FMLE.
Next you have to think about network bandwidth. One of the biggest challenges of live streaming from random venues - like corporate events or music events - is getting a good, reliable high speed network uplink. You standard consumer cable modem or DSL account at 200 to 300Kbps up just won't cut it. With the Kulabyte encoder, you can do a very nice 720p stream at 2Mbps and the Kulabyte encoder holds it's bitrate very tight (+/- 5%). In some recent testing we did with FMLE (inside the Tricaster TCXD300), even though we set the target bitrate to 2Mbps for a 720p stream it was averaging between 4 to 5Mbps. To actually get FMLE to average out at about 2Mbps, we had to drop the resolution down to 480p. So, for each of the corporate seminar venues where you want to stream from, you need to figure out what your actual continuous uplink will be (not burst only) and then adjust whatever encoder you are using to a resolution and bitrate that fits in that actual uplink.
Next you have to figure out how to distibute the video. It looks like you're planning on using UStream which is fine and UStream does have HD capability, but you just have to make sure your customer is OK with advertising on and around the video. You can also use a paid CDN like CDNetworks, Akamai, Level3, etc where you have to pay fo rthe bandwidth but there's no advertising. CDN rates are not that bad these days so for a stream that you're actually getting paid for, it's worth considering.
Next you have to think about playback. If you are streaming to a consumer or even business audience, it's possible that not everyone will have enough bandwidth (2Mbps for Kulabyte, 4+Mbps for FMLE) to view the 720p video without pauses and disruption and this is especially important if people are paying for it. Given that, you should plan on doing two streams - one 720p and one 480p or 360p - so that the viewer with low downlink bandwidth can still watch the video. This, of course, means you need additional uplink bandwidth for the two streams from the event venue. Also, there is the choice of having the viewer manually choose between two different streams or using adaptive or dynamic streaming that is supported by Adobe FMS on the large CDN's and maybe UStream has something similar, I'm not sure. In this latter case, the user just watches the stream and it will detect downlink bandwidth and choose the correct stream.
As you can see, HD video streaming is somewhat involved. Once you get it all setup, you really can create a very nice user experience with 720p going to viewers with enough bandwidth and lower resolution/bitrate streams automatically going to users with lower bandwidth. It may not quite mimic the TV watching experience, but it is getting really close. Also, Akamai for one, has done a lot of research on how long viewers will continue to watch a video based it's resolution and quality and you definitely get much better retention with a high quality 720p stream, so the effort to do high quality 720p isn't all for naught. It actually does pay off.
Hopefully this helps. Feel free to contact me at firstname.lastname@example.org if you want to bounce any more ideas off of me.
I just completed a test:
HD-SDI source 1080i 25fps (Braodcast quality at 1.5Gbps) into an Osprey700e HD/SD capture card.
the Osprey card is hosted in a gutsy PC with intel i7 (8 core processor) - was quite expensive.
FMLE running on this beast with video bitrate set at 720p 25fps @ 3.2Mbs H.264 Main profile 3.2 and audio at 192Kbps
FMLE Connected to limelight cdn
watched full screen: output was superb. I tested my stream for two hours and Audio/Video remaind in perfect synch whith no dropped frames.
My Point: With decent hardware it is acceptably possible to stream HD with FMLE.
Hope this helps.
PS. I love the Kulabyte box, I don't work for them but, I have met with them at trade shows: They are a good bunch and will help you acheive outstanding results if you choose thier solution.
Thanks for the added input. One thing we noticed in our testing is that encoders do not always report the actual average bitrate they are streaming out. It would be interesting to know if the 3.2Mbps you saw with FMLE was a target bitrate for FMLE or reported by FMLE as the streaming bitrate or reported by the OS as the bandwidth going out over the network card. Anyway, thanks for the kudos for Kulabyte.
Unfortunately, this test was just that, a test to see what it would look like, would it be good or just rubbish, that kind of thing. I like to understand 'stuff', and testing for real is always is the best way of doing that, I find.
Having said that, I hope to get some utilisation figures tomorrow. If I do I'll post here the results. if not, then well.. I won't.
Hi TimB kulabyte,
You have mentioned that a target bitrate of 2 mbps for a 720p stream averages to a 4-5 mbps stream. Is it really the avg. bit-rate or the intermittant spikes you are talking about?
What was the source content used by you? Could you please share the FMLE encoding settings also?
Not to hijack this thread, but I was hoping to get input on a similar issue - I'm using a PC that receives video; I'd like to be able to screen record what's on my screen and use FMLE to broadcast it.
Preferably, I would like the video to be in HD. I did a bit of preliminary research and noticed that VH Screen Recorder is a possible solution. I set it up and it seems to be working, however the performance is rather lacking, even on a high end machine (Quad Core i7).
Are there any other alternatives out there to VH Screen recorder?
That test happened to be with a Tricaster switcher with FMLE inside of it. The 4-5Mbps was average which means spikes would be higher but in later analysis of the archive files from the Tricaster we see that it was 720p60 and that COULD explain why the average was so high. What I would expect to see from FMLE is an average around 2 to 3Mbps but spikes up to 5Mbps. We are running further tests on native FMLE (not in the Tricaster switcher) now that it has Blackmagic capture card support and you are free to contact me for those results once we finish our analysis (email@example.com). Also, I do not want to diss FMLE or Adobe because FMLE does provide a very valuable low cost component in the ecosystem that Adobe has built around Flash Media Server and that ecosystem is what makes the Flash video platform viable for all of us to use - both customers and vendors like Kulabyte.
Regarding the content, it was typical content we use for testing with both easy and difficult to encode video. Regarding the FMLE settings, they were the standard settings for FMLE in the Tricaster switcher. We no longer have the switcher, but even so it wouldn't be right to distribute that data as it belongs to Newtek.
I want to get back to the question about whether the bitrate was average or spikes, however, because this is the most critical issue for live streaming. The point I will make below is that for live streaming, constant-bitrate (CBR) encoding is an absolute must and FMLE does not do constant-bitrate; it only does variable bitrate (VBR). The way we know this is from observation and also knowing that FMLE uses MainConcept's H.264 Standard codec which does not support CBR. Kulabyte's XStream Live 2, on the otherhand, uses MainConcept's H.264 Professional codec which does support CBR. See http://www.mainconcept.com/products/sdks/video/h264avc.html for more details.
Now, consider the variation in internet connections among all of the people watching your stream. First, everyone in your audience will not have the same download bandwidth on their internet connection. Some may have 1.5Mbps, others will have 10Mbps on fiber, and most in the U.S. will fall in the 2Mbps to 5Mbps range. For this reason, to insure the best possible user experience with a broad audience such as this, you really need to have multiple streams available to the viewer including maybe a 2Mb stream, a 1.2Mb stream, a 750Kb stream, and a 200-300Kb stream for mobile and and then you should use dynamic or adaptive streaming supported by FMS 3.5 with the major CDN's so that the player will negotiate with the FMS server and choose the best stream for that viewer's download bandwidth.
Next, consider the path the stream must go from the encoder to the player computer. First from the encoder to the FMS entry point, then from the entry point to an edge server, and then from the edge server to the audience members player. With a good CDN, the bandwidth between the entry point FMS server and edge FMS server is huge so we can ignore that piece of the path.
Before diving into the upload bandwidth from the encoder and download bandwidth to the player computer, let's estimate how much bandwidth is needed. For sake of argument, let's assume that FMLE has a 50% swing in bitrate from the average. Kulabyte's XStream Live's actual bitrate swing is typically about 5-8%, but well assume 10% to be generous. Next, let's assume (I think this is pretty safe) FMLE's average bitrate is about 50% higher than XStream Live 2's average bitrate for the same video quality (due to other differences between the MainConcept codec and other optimizations done by Kulabyte). Now let's calculate the bandwidth needed for the streams I mentioned above.
XStream Live 2
720p 2Mbps 2.2Mbps
480p 1.2Mbps 1.32Mbps
360p 750Kbps 825Kbps
(I'm leaving off the 4th stream for mobile because FMLE can only do 3 output streams, XStream Live 2 can do 4 plus more if you really want to)
720p 3Mbps 4.5Mbps
480p 1.8Mbps 2.7Mbps
360p 1.1Mbps 1.6Mbps
Now back to the path the stream takes. If you are streaming from a fixed location where you can get fiber and a solid 10Mbps uplink, then you will be able to send the three streams noted above from your encoder to the FMS entry point. However, if you can only get a solid 5Mbps uplink (like business class cable modem), what you will see with the FMLE encoder is that every time the video is a bit challenging and it swings to the high side of its bitrate, your video is not going to get to the FMS entry point and everyone down the line will see buffering. If your viewers didn't pay for what their watching, then maybe that's OK but for professional streaming with paid subscribers, this would be unacceptable. If it's not as good as TV, then you will not retain viewers. And, what we find with our streaming customers is that more often than not, getting good uplink bandwidth is very challenging.
Now consider the path from the edge FMS server to the audience member's player on their laptop. With dynamic streaming enabled, the viewer should see the stream most appropriate for their download bandwidth, but at 4.5Mbps for the 720p stream, how many people are going to be able to see that with their home internet connection. Many will only be able to see the 480p at 2.7Mbps and many others will only be able to see the 1.6Mbps stream. I think I mentioned this very early in the thread, but research done by Akamai shows that you will get much better audience retention with 720p versus 480p and, of course, you can not have the video stop for buffering ever. Thus, not having a good constant bitrate stream can bite you both on the uplink side from your encoder, unless you are fortunate enough to be streaming from a location with fiber, and this affects all viewers (i.e. buffering) and it can bite you on the downlink side for your audience because they will not see the quality of video they could see if you had a good constant bitrate and lower average bitrate stream.
You could try putting a Blackmagic Intensity Pro or Studio 2 with HDMI input into the computer and then running the HDMI out of the graphics card into the BM card and then have FMLE encode from that. If you need a second monitor for controlling the computer, you could get one of those small USB monitors. If you have a good graphics card (Nvidia 9500, etc), rendering of the video should be done mostly by the graphics chipset and thus the main CPU should be available for FMLE for encoding. I've heard of Kulabyte customer's doing this so it might work for you. The biggest challenge is making sure that the video card can output a broadcast frequency like 59.94hz because the capture cards generally do not like PC frequencies like 60Hz, 70Hz, 72Hz, etc.
Tim - thanks for the timely and informative response. I'll pick up one of those Intensity Pro's and see how well they work...
Rather interesting concept to feed the video out from the graphics card to the Intensity Pro and then have it feeding FMLE; based on a few threads that I've read, it seems like 3.1 and IP2 are working well together with 720p30, which is what I'm aiming for.
Will let you know how it goes once I've got it set up.
I'm a live event producer and utilize both Tricaster/FMLE and Kulabyte Xstream Live 2 Once our business started to grow into sports and music it became a necessity to source a higher quality encoder then FMLE. I've always suspected that FMLE wasn't CBR. But our decision was based on quality of the image at the lowest possible bit rate. Comparing the two side by side is where the differences are easy to see. We were in Montana last weekend covering a commencement address streamed at 600k with the Kulabyte. It looked like a 1mb stream but saved on bandwidth and provided fewer support issues due to the lower bit rate.
Stating the obvious:
Quality in / Quality out. The quality of output is a result of your entire workflow. Cameras, lighting, and cabling all factor into the quality on the receiving end. If you have to run the gain up on the cameras it will result in a grainy image. That grainy imagine will cause the encoder to focus it's efforts on all the specs in your image instead of the subject source... thus compounding your original problem of poor lighting. Encoding parameters are just one piece of the finished product and often the improvement in image quality is easier to make in the front end of your workflow.
Tim thank you so much for your super informative response. It has taken me this long to get through it because I wanted to read everything you had to say and really understand what you were saying
So I completetly understand that the quality of the video in plus the quality of the capture card and the encoder all have an impact on the final output.
I did some testing myself a few weekends ago. I attempted to stream a fitness event (just a friend so it was ok if it failed) with a basic digital video camera hooked to my macbook pro via firewire and then connected the laptop to the modem using ethernet. I encoded it with FMLE and streamed it to ustream watershed
*I'd like to note that I am not using the commercial ustream server that is free. FOr the corporate events they actually have an option called watershed which is a pay per bandwidth option which has no ads and you can embed logos and customize the players based on the brand.
So I do not know if it was the uplink speeds that killed me or what, but it was miserable quality.. However when I did a test at my partner's music studio the stream quality was much much better. I am going to assume that it had to do with the internet qualities.It was not HD because I do not yet have a card that can capture HD (but I plan on getting one)
So I guess now I am wondering if it is really worth it. If I am doing corporate gigs I am going to have to rely on the wireness networks that they have at the location. Is there a way to guarantee a quality connection no matter where you are? Does anyone have mobile networks that they use when broadcasting?
I have found that onsite bandwidth can be accomplished with planning. I have been able to receive quality Internet in corporate settings by involving the IT department early in the project. Wireless adds a whole new level of risk to your project.
Good luck! I think the efforts are worth it as people start to engage the online audience for their events.
That is a good suggestion, to involve the IT dept. before the actual event takes place.
I think as a whole the plan is a good one, the hard part is getting technology to work FOR me instead of against me. I am not an IT person by the least bit. I do not know a lot about networks and modems and all of that.. I'm lucky that I can open ports and set up wireless devices.
Anyways.. it would be nice to have a person on our team that has a background like you guys do, it seems to be hard to find people in that industry here in CT/ if anyone knows someone, send them my way
Regarding mobile networks, it's coming but not quite here yet. I wrote a blog back in March about a partner of ours streaming over Clear's 4G (WiMax) network from a venue that had no internet connection at all. When it was working, it worked great. They were getting about 4Mbps uplink and were easily sending a 540p 1.5Mbps stream up to the Flash Media Server. But, there were some caveats:
First, the Clear account we were using was an unlocked account that you normally cannot purchase, but it was made available for this event. Although 4G in the US is WiMax with potential speeds in the 20Mbps range, Clear has the accounts locked down to maybe 200-300Kbps up and 1-2Mbps down, or somewhere around that; definitely not enough uplink for HD. Right now Clear seems to be focused on the consumer market completely such that you cannot even have a discussion with them about high (uplink) bandwidth accounts. Sprint which was rolling out it's own 4G network and then bought 51% of Clear seems to be a little more interested in business class 4G customers, but still does not quite have packages put together. So the technology is there, but the business models are not.
Second, during one of the shows the 4G bandwidth dropped to almost nothing for long enough that they gave up on the streaming. If you've been paid to stream an event for someone, this would be absolutely unacceptable. Until there is some level of guaranteed reliability of the 4G networks, they will be much more useful for uses like mobile newsgathering and not streaming professional events where failure is not an option.
Third, Clear and Sprint 4G networks are not everywhere yet, but they are building them out pretty quickly so in a matter of a few years I think every medium to large city in the US will probably have it. In Europe and Asia, some areas have great WiMax networks up and running while other areas do not have it at all.
that is really quite interesting.. i didn't get a chance to read the article yet (i will get to it as soon as I have a minute)
But what about personal wifi cards like the Verizon MiFi? Would that be acceptable for use with something like this? or is that essentially the same thing as the 4G network
I believe the Mifi cards can do 3G or 4G, but the issue is the consumer level accounts are artificially throttled down to low uplink bandwidth - 200 to 300Kbps. It's not a technology issue with 4G, at least, but instead a business model issue where the providers have not figure out how many high bandwidth customers they can have on the system before overloading it and then how should they charge the high bandwidth customer versus the low bandwidth customers.
Ahh ok - I completely understand now.. I am going to continue to test a bunch of the options on the free ustream server and see what kind of quality I can get out of my basic camera..then when I get something pretty good I will move to the waterstream server.
I really feel like the lack of quality on the one fitness event that I did was really due to the quality of their net because I had the exact same settings I did at the studio but the quality was 10 times worse.
I'll stop by and post when I do a test, if anyone's around maybe you can let me know what you see...
My ustream (free) channel is powernubby if you wanna check it out and see for the next time I air, that is the chanel i will test on.
Easy: in your Stream input box do this: livestream_%i, and in the Save to file box do this: livestream_%i.flv. Doc: http://help.adobe.com/en_US/FlashMediaLiveEncoder/3.1/Using/flashmedia liveencoder_3.1_help.pdf p.15.
That seems to be just a way of saving with the bitrate as part of the filename...
ok I've tested and I see what is happening. %i seems to just use the different output streams. Problem is this is recording both streams to disk, and I assume its trying to output both streams live too. I want to differentiate - low res stream to network/FMS server, high res to my local disk.
I get an error if I try to use livestream_1, for example. I think it then tries to output both streams using the same name, hence the error...