Stream your FPV flights to the internet, LIVE!

by keithluneau | May 6, 2013 | (0) Posted in How To

How To: Stream FPV flights live on the internet in real time!

Here's a great way to add an extra element of fun to your FPV flying! Stream your live feed directly to the internet for others to view from all around the world, in real time! I'll run through the basics, including what software you'll need (free!) and what hardware besides what you may already have in your FPV Ground Station.

To start with, you'll need the obvoius- a source of composite video, and optionally audio. Your FPV recevier gives you this, it's what feeds your goggles and/or monitor. If you have a video splitter in your ground station with an extra output, you're set! If not I would highly recommend getting one rather than just using a "Y" cable. I won't get into a lengthy technical explanation as to why, but basically loading your composite output with two or more devices will pull the signal too low, and impact your picture quality. (Not the wireless signal, but the composite signal over the RCA cables on the ground.)

You'll need a capture device to take this analog composite video, and digitize it so your computer can work with it. There are a number of options here, most come in the form of a USB device with composite A/V inputs. The EasyCAP is common (and what I'll use in this demo), and there are other similar devices out there from companies like Avermedia, KWorld, Hauppauge, etc. The EasyCAP is common in the world of FPV because there's very little "lag" or delay, from it's input to what's displayed on your computer's monitor. Some people use them to fly with, I've done it in the past, but for streaming live, the input lag is not important. It's never more than a second or two at most, and I'm assuming you will be using some other display (LCD or goggles) to do the actual flying.

You will need a laptop to run the software and connect to the internet. Generally speaking, you will want a decently fast/powerful computer to compress the video in real time without any frame loss. I have no problems using a dual core AMD PhenomII N260 CPU (64-bit 2.8GHz) and 8GB of ram with a Windows 7 machine. If you have access to Wi-Fi where you fly, you can use that, but keep in mind that it will interfere with your 2.4GHz video. I would suggest only using Wi-Fi if you're using 1.3GHz or 5.8GHz video. Another option for internet access it tethering a cell phone to use as a modem. Most smart phones will allow this, just keep in mind that you will probably use a lot of data. I would recommend an unlimited data plan. The more bandwidth you have on your upstream, the better! I have just 256Kbps upstream here, which is the absolute minimum I would recommend for streaming. Any less is not worth trying in my opinion. Truthfully I would recommend 500Kbps ore more. Keep in mind this is the UP stream, not DOWN. Don't always trust your service provider's advertised speed either, do a speed test online to see what you're really getting at any given time. Test around the times you plan to stream, your speeds may vary depending on how loaded you're ISP's netowork is at different times during the day.

For the software, you will need any drivers/software necessary for your capture device, as well as a tool to compress the video and push it up to a streaming service. For this example I will be using Open Broadcast Software (OBS). OBS is a 100% free open source tool for doing exatcly what we want here, streaming a video source to a streaming service online. It will allow multiple video and audio sources, as well as text/image overlays, set up across multiple "scenes". You can keep it simple with just stream your FPV video feed, or get more advanced with a picture in picture webcam if you have one built into your laptop for example, and use a mic to talk to you viewers if you wish to do so. For the streaming service, I suggest either Justin.TV or Ustream.TV, both are free to stream, but will show ads to your viewers. For this example I'll use Justin.TV

So with everything in place, lets get started!

I will assume you've already installed your capture device and have it working in Windows, and have your composite video source at your ground station ready. First lets create an account on Justin.TV and get that ready.

Go to justin.tv, click "Create Account" and fill in the info. Once logged in, click the red "Go Live" button, then "More streamin options". On this page, click the link to show your stream key. Copy this key and save it, you'll need it to set up OBS later. You may also want to customize your "channel" on JTV, you can change colors and ad images to your liking. Explore the settings pages if you wish!

 

 

Now go to obsproject.com and download Open Broadcaster Software. Once the download completes, run the installer and follow the onscreen instructions. After the installation is finished, run OBS and click the settings button.

 

 

On the first page, you may want to create a new profile and save it. Here I've named mine simply "FPV". Just type a name in the box and click Add.

 

 

Click Encoding to go to the next page. Here, you want to make sure "Use CBR" is checked. This selects a constant bitrate, which tends to do a better job than VBR (variable bitrate) with fast motion scenes like we'll often see with FPV. Set your Max Bitrate to something lower than your speedtest results earlier showed for your upload. Keep in mind that the video and audio bitrates combined need to be slightly lower than your upload speed. For me, I'm showing about 260Kb/s upload according to my speed tests, so I've set my video to 180Kb/s, and audio to 48Kb/s for a total of 228Kb/s. That should allow enough room for my upload speed to fluctuate a little during a stream without dropping frames. So far it has proven to be work. You may need to experiment here a bit, but try to do a speed test when you're ready to start streaming, and adjust accordingly with this in mind. For the Audio Codec, you can try the default AAC, or MP3. I have been streaming video only thus far, so I haven't tried changing this yet.

 

 

Now click "Broadcast Settings" to move to the next page. Set Mode to "Live Stream". Set Streaming Service to "Twitch / Justin.tv", and pick a server that is located near you. Copy/paste your stream key that we saved earlier from JTV. You have the option to save your stream to a file on your hard drive as well. I have not used this option, so I don't know how much imact it has on performace as far as your PC is concerned. You'll have to try it and see! :) Check the box and set your file path if you want to try it out. You can also set a hotkey to start and stop your live stream if desired.

 

 

On the next page, Video, set a custom resolution. My capture device defaults to 640x480, so I set that. Because I'm streaming at such a low bitrate, I've found that downscaling my resolution to 320x240, and the frame rate to 15fps produces a much better end result than trying to compress the video enough to push it out at 640x480 @ 30fps. You will have to adjust these to whatever works best for you at your given bandwidth.

 

 

On the Audio page, you can select your audio device and any microhones present on your system, as well as custom keys, delay settings, and boost levels here. Again I'm only streaming video, so I have not looked into these much thus far.

 

 

On the Advanced page, the only option I've changed from default is the x264 CPU Preset. Because we're streaming relatively low resolution video and low frame rates, we have some room to raise the CPU workload here without maxing it out. Of course this will depend on your particular settings and how powerful the CPU in your computer is. Do some test streams from home and check your CPU load using the Windows Task Manager, or your favorite utility that will show CPU load. Generally you want to let your CPU do most of the work, without maxing it out and at a level that won't run your battery down too fast if you don't have external power available at your flying site. Like everything else, you will probably have to experiment here and adjust to your liking to find what works best! If you're using a mic, you may want to adjust the noise gate settings on the last page.

 

 

Now that the basics are set up, we need to configure your sources. Right click in the Scenes box and click Add Scene. Type a name in the box and click OK. I named mine "FPV".

 

 

Now we need to add a source to the scene. Right click the Sources box and expand the Add menu, then click Video Capture Device. Name it something meaningful, for this example I'm using my #16 keychain camera in webcam mode on my desktop, so I named it "Number16". ;) On the next window, select the device in the drop down box, then configure any settings you might need here. Mine works fine with the defaults, your mileage may vary.

 

 

Once the source is added, you can click Preview Stream to see a preview of what your stream will look like. Verify that your frame rate and bitrate look good. At this point you're ready to stream live! Stop the preview, and click Start Streaming, and your video stream shold start on your channel and JTV.

 

 

If you want to add more sources and experiment with multiple scenes, just add more using the same steps as above, and use the Edit Scene button which will allow you to scale different sources and move them around on the screen. One idea might be to stream at a wide screen resolution instead of the usual 4:3, which will leave room on the side of your live feed to add a webcam feed from your laptop in the corner, and maybe a picture of your plane below it, or some text info about your FPV gear. The possibilities are endless and up to you! Just watch the CPU load as you add multiple sources. Remember to go to your JTV channel and load the chat, look for the "popout" option and you can keep just the chat open and close the rest of the page, so it doesn't impact your internet much. Even if you're busy flying and can't type, it's fun to glance at the comments in the chat and maybe even answer viewer questions if you have a mic!

 

Remember to post on the forums when you plan to do a live stream with a link to your JTV channel so people can follow you, and JTV will send an email notification when you "go live". Lets get more people flying live so those stuck at an office can watch some live FPV when they're supposed to be working. ;) Enjoy!

-Keith

justin.tv/keithluneau

COMMENTS

planemad man on May 7, 2013
cool
Log In to reply
danielmann on June 14, 2013
what case is this.
Log In to reply
keithluneau on June 20, 2013
It is a Plano gun case that was on sale at Wal-Mart a couple years ago. I like it! Just enough room for all my stuff, including my transmitter. All I need is the case and a plane and I'm ready to go... :)
Log In to reply
keithluneau on June 20, 2013
Just searched and found the model#, it's Plano model 108361.
Log In to reply

You need to log-in to comment on articles.


Stream your FPV flights to the internet, LIVE!