In light of the the recent Occupy Wall Street movement, I felt that it might be a good idea to share some information on how to pull off guerrilla style live video streams on the Internet. This guide is intended to help protesters, or anyone else, generate live streaming video coverage of newsworthy events using consumer electronics, software, web services, and some practice.
Live video can be a powerful medium for sharing information about events as they transpire. It can also be used to create an off-site video archive of events, which is impossible for someone on-site destroy or manipulate. Unfortunately, effective live streams are somewhat difficult to pull off reliably, and even more difficult when you do not have control over the environment. This guide aims to provide the reader with a head start in figuring out what kind of live streaming techniques to use, what tools they might need, and what potential pitfalls to avoid.
This guide is not comprehensive. Some points are covered in depth, and others are entirely glossed over. You could write a thousand page volume on this subject and just be getting started. What was included in this guide was picked based on my best efforts to guess what information is important to focus on, and what could be glossed over. Also, remember this guide is about “guerrilla style” streaming, and is not intended for experienced broadcast engineers with expensive toys, it is intended for everyday people looking to get information out to the world via the Internet.Socially Responsible Warning
Live video streaming on the Internet can be an extremely powerful tool for disseminating information and sparking social change. This technology provides “the people” with the power to document and share how events are transpiring in real time. It allows viewers anywhere in the world (assuming they are not censored and have enough bandwidth) to watch important events unfold without the filter of corporations, government agencies. It also enables coverage of events that would otherwise be ignored by these entities.
As an extension of this, when watching a live video stream remember that you are only seeing ONE perspective though a murky and imperfect filter. USE YOUR CRITICAL THINKING SKILLS and check your facts before jumping to conclusions. Don’t forget that it is entirely possible for someone to edit archived footage or create staged events for the purpose of discrediting or promoting a specific agenda. Always be a skeptical and informed media consumer when watching live streams or on-demand video content.
Streaming empowers you to share and document your experiences. In turn, it may help make sure that your rights are respected, or if they are violated, provide you with evidence to be used in the court of public opinion. Remember, though, I am not a lawyer (I don’t even play one on TV) and so I make no claims that your video will be accepted as evidence in a court of law.Guerrilla Live Streaming Like a Boss
So you want to live stream video of a protest on the Internet for the world to see.
For those new to live streaming, please understand that it is hard and you will make mistakes. The only way to ensure a live event goes perfectly is to use expensive gear and control every possible variable. That’s simply not possible for the use case we’re discussing. This guide doesn’t delve too deeply into the hardware side of streaming, though as you may have guessed, the more you can afford to spend on equipment, the better quality you are likely to get out of it (though more expensive equipment won’t make you less likely to screw up!). You can compensate for the lack of control by practicing and testing as much as possible before going into the field. Also, don’t just make a single plan -- have backup plans. And backup plans for your backup plans.
I will suggest three ways to live stream a protest, each with its own pitfalls.
You can stream from INSIDE of a protest crowd using a wireless connection (such as a mobile phone or tablet).
Using a mobile phone is appealing because they are easy to operate and you most likely already have one. Phones also provide an “on the scene” point of view that is harder fake and may have more impact. HOWEVER, it will be difficult to stream reliably from this situation because wireless data infrastructure will likely be saturated given the large gathering of people. In fact, you may think that your streams are working, only to find out nothing is actually getting out or being seen by anyone. Additionally, the quality that a mobile phone camera offers may not fully capture the event in the way you desire.
You can stream from OUTSIDE a protest crowd from a point observing the protest using a high quality camera, a computer, and a wired, reliable broadband connection.
Broadcasting from a location observation a protest can provide a much higher quality video streams and can be much more reliable. You can be directly connected to a known-good Internet connection, you have access to CPUs that can encode the video in higher quality, you can use higher quality cameras, and there is no need to worry about batteries. Also, it is a way for you to participate, even if you cannot or do not want to be IN the protest.
You can BUILD YOUR OWN BROADCAST STATION, where you can aggregate, mix, and stream live stream a feed of various multimedia sources as you acquire them.
This involves creating and operating a broadcast hub from which you can acquire media sources from reporters on the scene like pictures, live video, video clips, and phone calls. You then take these feeds, remix and curate them, then stream them out to the world. This will provide you with the “best looking” stream, with more reliability, more flexibility, and a larger variety of content coming from the scene. This method is perfect for covering events where you just cant get a real time live stream out over a data network, but you can get out cell phone calls, pictures, and video, albeit slowly uploaded.The INSIDE Man
- Before arriving, make sure you configure your live streaming service to archive the video you stream, so you have an off-site recording of the events. Ideally someone else can screen capture the video for you as well as a backup to the video archived on the streaming service's website (as a rule of thumb, if something doesn’t exist in at least two places, its not backed up). See below for suggestions as to streaming services to use.
- If you want people to watch your stream live (as opposed to just using live streaming as a real-time off site recording) don't promote the link until you have begun streaming and are positive everything is working. There are a ton of broken protest live streams out there that lead nowhere, which can be confusing for people trying to get to real information. Don’t make things worse with your efforts and hurt your cause. If a user doesn't see something working when they load the page within two seconds, they are most likely leaving and never coming back.
- Have someone at home, on a reliable Internet connection, handling the promotion and embedding of the video for you. This person can send the archive of the stream wherever it needs to go if something happens to you or your connection. Secondly, they should also be actively watching your stream and updating you on the status via a phone call or long range radios. Wear a wired headset for this back channel in ONE ear (a wired headset, as opposed to bluetooth, eliminates the failure points of RF interference or batteries). For your voice to be clear while speaking in such a loud environment, use a mic close to your mouth with a long boom or even better a throat microphone. Ideally, you should be muted when not speaking or have a push-to-talk setup for your microphone. This way, people on the line hear silence when you are not communicating, and will for sure hear (and pay attention to) you when you do speak. If you have multiple people at the protest on a conference call, you MUST be muted when not speaking, or nobody will hear anything, and the noise will just hurt your ears.
- If possible, work as a team with lots of people producing streams from lots of locations. Create a single website to be used as the destination for your group, and embed on that page all of the active live streams happening at the protest. This way there is another stream for a viewer to switch to WHEN your stream crashes (because it will, I promise you). Also, when you are then providing multiple streams from various locations within the protest, you are less likely to miss potentially important events. The home-base person should be responsible for updating this website with the relevant streams, and make sure to remove streams from this page once they go down.
- Try to use a high-end smart phone for the source stream, with a camera that deals well with motion and difficult light situations, such as a Nexus, a Galaxy, or an iPhone. A dual core phone would be ideal as it should, in theory, be able to handle the act of both capturing and uploading the content better.
- Services that have offerings for broadcasting live from smart phones include: justin.tv
, livestream, Stickam, qik, YouTube live (if you have that feature enabled) and Ustream.
- When streaming, try to keep the camera pointed as steadily at the subject as possible. The more you move it, the more the video will become so blurry and choppy that it may be impossible for the viewer to make anything out. Consider sticking your phone in a fixed location, whenever possible. You can use a tripod, or for a more portable solution, a gorillapod. It is probably best if you don't use a monopod as someone might mistake it for a device intended to beat someone with.
- Cellular data networks are unreliable under heavy loads, and a protest with lots of people in one place, cause heavy load situations. You need to try and figure out which wireless broadband provider provides you with the best stream out when and where you are trying to stream from. Your tests from ten minutes ago, from down the block, or at home, provide you with an important testing basis, but everything changes when you get to where you are actually going to try and stream from. Gather friends together with different smart phones, or acquire multiple smart phones with multiple providers, and test all of them them until you find the best results. Again, the person at your home base can tell you what one works best. Do not assume the phone and service you have in your pocket will work at all until you test it, because it very well might not.
- Look for data coverage from services that are really new or obscure, and as such don’t have many customers using them. For example, if LTE is new in your city, try that, as there are probably not very many people using it yet. Obviously faster speeds with higher signal strength would be preferred, but it doesn't matter what the specs are if everything is saturated. Reliability and consistency are the most important attributes.
- Do not use a portable 3g / 4g hotspot to provide an Internet connection to your phone via wifi. It works in theory, but in practice just going to add more place where you will make a configuration mistake, more places for packet loss, and have more batteries to go dead on you.
- Watch your coverage bars while streaming. Stay away from places that may cause it to cut out, like tunnels. Who knows, that may even become a new tactic when someone wants to limit the ability for people to live stream, but straight up cutting or jamming communications is politically inconvenient.
- If possible, try and find an available wifi network, as cellular networks will be saturated. Note that if you do use this technique, you don’t want to leave that area of coverage if possible, as your stream will drop before you reconnect to mobile data. Note that if you have support form a nearby building, you can build a directional Yagi antenna out of a pringles can to shoot wifi coverage down to a specific spot.
- If your phone supports using an external microphone input while making video, do it. Use your headset to narrate what is happening, or rig up a shotgun microphone to record in front of you. Narration will likely work better. If you ARE narrating, try to use a headset that has a long boom microphone in front of your mouth, or nobody will hear you. In a loud environment the microphone built into your phone will be useless other than just picking up general ambient noise. The ability to use an added microphone on a phone completely depends on the type of phone and OS you have, so experiment.
- Live streaming will burn through your battery in tens of minutes on most devices with the internal battery. Find external batteries that you can hook up to your phone to keep it charged, and keep swapping them. You may need a runner going back somewhere to swap dead batteries back into chargers, and pick up fresh ones. External batteries can be swapped while the phone is still on, because the internal battery works as a UPS, so rely on external power most of the time.
- Your live streaming smart phone will run out of energy quickly. Not only does this end your stream, but I could leave you without communications capabilities to call for help in case of an emergency. Buy a pre-paid cell phone to call for help with in emergencies, or possibly to as a back channel to other people you may be working with. You can use google voice to have both your pre-paid phone and your smart phone ring when a single number is called, if you want.From the OUTSIDE Looking In
- To stream, you need to complete the following signal chain with your own hardware, software, and services:
(Audio/Video source) -> (signal from camera) -> (signal into computer) -> (software to encode/compress the video and stream it) -> (live video streaming service)
Two examples of that chain filled in would be:
(Canon HV20 Camera) -> (DV/Firewire) -> (firewire port on a macbook) -> (Flash Media Live Encoder) -> (Justin.tv)
(Panasonic HDC-TM41H) -> (analog video cable) -> (viewcast osprey 100 pci card in a desktop computer) -> (Flash Media Live Encoder) -> (ustream.tv
(Panasonic HDC-TM41H) -> (analog video cable) -> (ADVC 110 converter) -> (firewire port on a mac laptop) -> (Flash Media Live Encoder) -> (ustream.tv
- Again, you can stream using service offered by free websites / services. These include include justin.tv
, Ustream, YouTube (if you are a partner), Livestream, and Stickam.
Audio / Video Sources:
- Most of these services will let you use a basic webcam and an embedded flash player to create a stream. HOWEVER, be wary of this instant gratification, as it only usually works with crappy webcams. Webcams are really only good for recording someone sitting right in front of them, while not moving much. This is not ideal for a protest from a distance (where you won’t be able to see anything). Also, the quality of Flash's built-in video encoding capabilities is poor, so even if you have a good source, you likely won’t be able to produce clear and usable video with this.
- The easiest way to get decent quality video into your computer to encode and stream, is to use a camcorder with live Firewire / DV output. An example of such a DV camcorder, would be the Canon VIXIA line. This works well because the camera is already providing signals computers can understand and you can hook them directly up. Note that if your handheld video camera has a USB port, this is almost always intended for grabbing recordings only, and does not provide a live video feed to streaming software.
- Be aware that your camcorder hooked up via firewire is providing DV video which is "interlaced" and "anamorphic." This means it comes out in a strange aspect ratio with funny horizontal lines during motion. You will need to properly configure your encoding software to correct the video before you stream it out (more on that in a bit). You will want to your camera to 16.9 / widescreen mode, and set your software to de-interlace the video. Then, you will want to be careful to actually encode encode the video you are sending to the streaming service in a widescreen 16:9 aspect ratio. If you don't, your video will be blurry, or be stretched, or squished, or have goofy lines in it, or have pillarboxes / letterboxes around it in the player.
- If your camera does not have a Firewire output, it is likely you can still use it’s analog video output. You can send these into your laptop or desktop computer using an “ADVC,” which is analog to digital adapter. ADVCs take in an analog signals, and turn them into a firewire DV video signal. Basically you are turning video signals into computer signals. If you have a desktop, you can also use install card into a PCI slot in your motherboard to perform this function. Analog signals come in the following standards: Composite, S-Video, and Component. Google for pictures of those connectors to see what they look like, and then find which is on your camera.
- When picking out an adapter to capture analog video, you will have to Google around for a working combination of (operating system) + (capture card) + (streaming software) that fits your needs. Don’t assume that one card working on one OS with FMLE means it works on another.
- You can also acquire digital HD video signals like HDMI or HD-SDI with the correct capture cards. However, analog signals can be captured much more cheaply than HD digital signals like HDMI or HD-SDI and analog capture gear is also often available in local stores. Also, chances are if you have an HD-SDI camera around, you don't need this guide.
Encoding (video compression) and streaming software:
- Once you have a video signal going into your computer, you need to encode and compress it before you can send it over the Internet. You will likely be using based on Flash video streaming. Therefore you need to encode your video with the h.264 video codec and the mp3 or aac audio codec, and transmit it via RTMP protocol.
- Adobe provides a good free piece of encoding software to do this easily, it is called “Flash Media Live Encoder.” It works on Windows or OSX.
- If you’re a *nix hacker, you might be able to put together an encoder using FFMPEG and it’s RTMP libraries.
- There is a 99% chance that the service you pick will just redistribute your encoded streams that you send to them.. This means, they cannot fix your video if you mess up the encoding, so be careful when settng up your software! However, if you are careful this, can work in your favor, because it gives you the control to tune your settings for reliability and smoothness. It also means you need to know what settings to use.
- For configuring FMLE, some of these services will let you download a pre-made configuration as a .XML file, that you can FMLE, and all of the settings will configure themselves for you. Note that this profile has no idea what your input sources are, so you still have to select those yourself.
- You may also need to manually configure FMLE. For this you need to select your input sources, your encoding settings, and provide the server url and stream name for where you are streaming. This is tells your encoder where to get the video, how to compress it, and where to send it.
- To get the URL and stream name of for your stream, you will need to go to the website of your selected streaming service, sign in, and follow their directions to start a stream. It will be somewhere in their user interface. Note that it may be hidden in some area for “advanced streaming.” If you get lost, search on Google for “how to use flash media live encoder with nameofyourservice.com
” Obviously, you will need to make an account with whatever service you are using. What you are looking for is something likes a a web URL but instead of HTTP at the beginning, you will see TMP. The syntax is “rtmp://xxxxx.xxxxxxx.com/xxxxx
”. The stream name is another string of text, but does not look like a url. For example “xxxxxxxxxxxxx”.
- For the encoding settings in FMLE, you may be tempted to crank up the quality. Don’t. You are not creating transformers 3, and its very likely that your your computer and bandwidth cannot support encoding and streaming at high qualities in real time. Even more important however, is that by being reasonable about your encoding settings, you allow a broader audience to be able to WATCH your streams, on whatever type of connection or device they may be on. I have suggested below some very good conservative specifications to use for your encoding.Video Encoding Settings
640 x 360 resolution
H.264 (click on the gear and select main profile)
Check the box to deinterlace
AAC or MP3 (AAC preferred if available)
44.1khz sample rate
426 x 240 Resolution
Check the box to deinterlace
AAC or MP3 (AAC preferred if available)
44.1khz sample rate
- When you have FMLE configured correctly, you can hit “connect” ad then “start” and you will begin streaming. Now, go and watch your stream and see if it looks right, buffers, or is screwed up in any way. Take this opportunity to fix it before sharing it with people.
Internet Connection Tips
- It doesn't matter how good your video looks up to this point if you cannot send it smoothly and reliably across the Internet to the streaming service. Make sure you test and re-test your connection to make sure you are able to transmit reliably, and if not, turn all your settings down, then re-test.
- Run a bunch of bandwidth tests to make sure you have at least 1.5 megabits of bandwidth up before trying to stream. Not that this does not mean your all good to go, as consistency is even more important than speed, and this test wont tell you how consistent your connection is.
- Hardwire your computer to your router or modem with an Ethernet cable. Do not use wifi.
- If you are on your stealing your neighbor’s wifi, or sharing yours with the neighborhood, chances are that everyone else in your apartment complex is as well. Don't be surprised if your stream has buffering issues.
- Make sure that nobody on your network is using a ton of bandwidth while you are trying to stream, up or down.
- If you are really a nerd, REALLY paranoid, and you are only interested in streaming video to an off-site server / computer for safe keeping. Set up a copy of Wowza Media Server for yourself in your secret lair. It can receive your RTMP stream, and archive it to a hard drive for you without using an external streaming service.
- If you are REALLY REALLY a nerd, you could also use wowza server + jwplayer + apache to create your own home brew live streaming service. Obviously a configuration like this without a content delivery network wouldn't scale if the stream link got shared widely, but hey, maybe you have an OC-48... who knows?Build your own broadcast station
- It is an entirely plausible scenario that no matter what you try, you will not have sufficient bandwidth to stream reliably out of a large moving crowd OR find a place with good connectivity to set up shop near the action. So what do you do? You build your own tv network!
- What does CNN do when breaking news happens in a location where that they don’t have reporters on the ground? They take whatever media they can get from the location, and mix it into their live feeds at their studio. The feeds they CAN get include cell phone calls, cell phone pictures, or maybe a few clips of video that were shot and uploaded. They then add commentary, graphics, and reliable broadcasting.
- You can learn how to do this in an afternoon.
- What is different here from the last section, is that you are mixing multiple incoming sources, then encodng and streaming the video, as opposed to using one audio / video source.
- If you are setting up a homebrew broadcasting station, you will ideally want to build a team of people to do it with. Lets say that you are the person building and operating the equipment... we will call you the “producer.”
- Ideally you will also work with news gatherers in the field who are covering the event via phone, taking pictures and video, and sending them back to you via email. We will call these people “reporters.”
- You will need to to set up and install software that can do basic video production AND streaming on your computer. Two examples are Vidblaster and Wirecast. You can easily download them, and install them on a semi-powerful modern computer. Remember to follow all previous tips about how to make sure you have a reliable connection, and how to encode and stream correctly.
Software choice disclaimer: For the sake of simplicity I am going to use Wirecast in my explanation because it runs on both OSX and Windows, I know it well, and it is reliable. Vidblaster can serve this purpose too, but on the Windows platform exclusively. Both choices here cost money, but have free demos with watermarks so you can set up it up and try it for free to see if you can get it all going. Vidblaster’s watermark isn’t bad at all, and if you don't want to fork over cash, just use it and don’t worry about it being there. Wirecast’s watermark is pretty in-your-face and would definitely ruin your broadcast, so you would want to pay for it. If you need to, remember you can install Windows on your Mac, and it will run for 30 days in trial mode without a key, which is probably long enough for you to broadcast.
You can also replicate these capabilities with free software, but in a more hackey way, by combining basic video switching and compositing software for webcams (like camtwist or manycam), with free streaming software (like flash media live encoder). If you need your solution to be free, look into this route. I am not promoting any one piece of software, especially if it costs money, I am just trying to share how I know to reliably accomplish these goals.
- Wirecast has the interface metaphor of creating “layers” and “shots.” Each layer can contain multiple shots that you will set up, and then may select when broadcasting.
- Shots are combinations of audio or video sources. You can put pretty much anything into a shot, and manipulate it, including video clips, audio clips, text overlays, pictures, or feeds from cameras or microphones. You can also use “desktop presenter” to capture windows or areas of the screen on the computer that you are running Wirecast on, so you can add screen shots, social media, or news websites.
- Layers are useful for controlling which sources are constantly selected, and which ones are changing. For example, you could add a text overlay to your video by adding it to a shot on layer 1 and selecting it. If you have it selected, you could change camera shots down in lower layers, but overlay would stay on top and not be affectd.
- Here is an example of how you could for how to set up your layers and shots in wirecast for covering a protest.
You could put in this shot something that you want to be always on. For example, if you had a conference all going on a phone line, you could have this in a shot, leave it selected at all times, so it is always audible.
You could put into this shot, say a little transparent logo, that is always over the rest of the video. Maybe a little logo for your streaming station.
You could place here a couple of shots, which would consist of text overlays that you could switch between.
For example, one could say “live coverage of occupy Oakland” which you could select when there is nothing else going on.
Another shot could be that overlay, explaining something specific, like “occupy Oakland tents being removed by riot police” that you could select when interesting things happen.
You could add new overlays and label them as you see fit, as situations change, to provide context to new viewers.
On this layer, you would want to add shots made up of all of your different content feeds. Camera, pictures, audio, video, and screen shots of news or social media websites.
This is where you would be doing most of your live switching.
As new media comes in, you would create new shots and add in this media, then switch to it.
- If you want to have live video from the “studio,” and not just remove multimedia feeds coming in, you will need to have cameras and mics hooked up to your Wirecast setup. As covered in the previous section, non-USB or Firewire video signals from cameras will need capture cards or analog-to-digital video converters to bring into your computer.
- Digital signals like HDMI and HD-SDI are easier to support with Wirecast than with other software, sine t supports Black Magic Intensity (HDMI) or DeckLink (hd-sdi) cards natively, which are cheap.
- Web cams can hook right up via USB, but should only be used for content IN the room, and for fixed shots. Be careful to control the room light for webcams.
- Firewire cameras can be hooked up directly, deinterlaced, and made to be the correct aspect ratio. However, again don’t use them for shots where you need the audio to sync with the video, if you have audio coming from other sources. If you need to use a firewire camera and have it in sync, you need to send all of your audio THROUGH the camera, so it is on the same small delay as the video.
- To get the audio from a phone or conference call into your mixing session, you could use an external laptop’s audio output feed, hooked up into the microphone-in jack in your computer. Wirecast will allow you to have multiple audio inputs, so you can use the built-in microphone, or an external one, for the producer’s’ voice. You can call into the conference bridge line, or call people directly, using google voice or Skype out from that computer. You can of course use a cell phone in a similar way, but watch your cabling as you will need a four ring plug for your phone and dual ring plus for your computer. Also watch your phone bill and calling times since it will likely be a cell phone if it has audio output ports.
- Once everything is set up, you need to test, test, and re-test your live stream. If it works, then you can tell your reporters to start sending back content. Once it starts coming in, the producer can then start the broadcast, and begin recording the video locally.
- As the you receive media, you can now add new shots into wirecast with this content, and then switch to them, bringing them live to the stream. Keep doing this as the content flows in.
- Once you are up and streaming, everything is working, and all of the media is flowing you might want to begin to promote the stream though social media outlets. Don't promote it until you have something for people to see..
- You can also should comb social media sites for news to bring into the stream. If you find something noteworthy, you can create a new shot, and in that shot capture an area of your computer screen displaying the website, then switch to the shot.
- Don’t forget to update your text overlay description of what is happening if things change, so that when new viewers come to the stream they can instantly find out what they are watching.
- I would caution against having the producer sit in front of a stream all day talking to the camera unless they are VERY charismatic, it will chase off people looking for actual content.
- When your event is over, you can either upload and share the video on your website of choice. Or, you can trim the dead air on the ends, then share it, using something like avidemux or MPEG Streamclip.
- If you know how to edit video, for maximum impact you should probably re-edit the recording in a non-linear editor like Final Cut or Premiere, and boil down the events of the live stream to highlights, then share that video.
- People will watch slower more diluted video when it is live, but for recordings, viewers expect much more densely packed content. Don’t bore people, always try to edit out anything other than interesting parts.