How to capture live video feed from an external HD camera and encode it for a live webcast?
In my previous blog post, I gave a high-level overview of the workflow when producing a live webcast for an event. In this post I will discuss in detail what hardware is necessary to produce a high-quality live streaming with one external camera, as well as how to configure the software encoder to stream to a media server.
The software and hardware requirements for producing a live webcast of an event are the following:
Media server or Content Delivery Network (CDN), and a Webcast page, featuring a video player - you could register for a Demo account at Selfstream to get these
Professional HD video camera
Video capture device - provides the live video feed from your video camera as an input to your encoding/streaming machine
Laptop or desktop computer, used as a streaming/encoding machine
Most professional HD cameras have a number of outputs - HDMI, SDI, HD-SDI, etc. Older models also have an IEEE 1394 (also known as iLink, or FireWire) connector. In order to capture live video from any of those outputs, you need to have a capturing device, or a peripheral connected to your encoding machine. You could do that via USB 3.0, IEEE 1394, Thunderbolt, HDMI or other method.
Figure: Thunderbolt, IEEE 1394, HDMI, HD-SDI, USB 3
Here are a few devices you could use as peripherals, that could capture live video feed from your camera, and make it available to the encoding/streaming machine:
If your camera has an IEEE 1394 connector, and your streaming machine (laptop or desktop computer) has an IEEE 1394 input, then you could directly plug in your camera to your computer, without the need of a video capture device
Blackmagic Intensity Shuttle - If your camera has a HDMI, analog component, composite or S-Video output
- ATEM Television Studio - If your camera has a HDMI or SDI output
After having decided how you will input a live video feed to your streaming machine, you have to pick a live encoding software. Alternatively you could also use a hardware live encoder, but for the purpose of this post, we will review the software ones:
Adobe Flash Media Live Encoder - a free live encoding software product from Adobe, currently available for MS Windows and Mac OS X. It produces one of the highest-quality H264 video streams, but does not provide any functionality for embedding videos, or presentations in your live stream. Basically you can stream only the contents of your live video feed.
Wirecast - a proprietary paid live encoding software product from Telestream, available for MS Windows and Mac OS X. It allows you to embed videos, presentations, multiple cameras, remote desktops viewers, etc. in your live stream. Wirecast is one of the best live video production tools available at the moment. For more information, check the website.
VidBlaster - another proprietary paid live video production software. It is available only for MS Windows. It also allows for the embedding of videos, presentations, multiple cameras, etc. in your live stream. For more information, check the website.
For our purposes we will be using the Adobe Flash Media Live Encoder. A few things you need to review before starting to broadcast:
If you are using Selfstream, you could download an already configured profile, which populates the server configuration fields automatically. Just open it from the File menu.
Depending on available upload bandwidth on the venue where you are located, you have to decide with what quality you would stream to the media server. Normally for a H264 live video stream, with 720p resolution, you need to encode with a bitrate of 1300kbps - 1800kbps. For a H264 live video stream, with 480p resolution, you need to encode with a bitrate of 600kbps - 800kbps
By default you would inject 1 keyframe per 4 seconds, which equates to 1 keyframe every 100 frames, if you a streaming a 25fps video.
A setup with one of the capture devices listed above and one external HD video camera is quite easy to handle. If you are getting into live webcasting, I suggest you try this first, before moving to more complicated setups involving multiple cameras. Feel free to ask any questions in the comments below as well as share your current streaming setup.