Monday, September 23, 2013

Portable Streaming Cart

Hello production and tech fellows! This blog-post is written in response to a request for more details about a portable live-streaming audio/video cart I put together for my church. The cart itself was requested by the church Technical Director to support streaming from any location on campus, or to be taken to one of our remote-campuses to stream back to the main venue. The focus of this post will be on the hardware components in the cart, but if you need more information on a particular topic let me know and I'll try to help out.

Alright, let's get going! So, what's in it? Here's an overview:
  1. 18U Rackmount Case with Wheels 
  2. Rackmounted custom-built computer with HD-capture card, monitor, keyboard, and mouse
  3. Rackmounted Uninterruptible Power Supply (UPS)
  4. Rackmounted Power Distribution Unit
  5. Network Switch
  6. Camera 
  7. Shotgun microphone
  8. Cables (Ethernet, Coax-BNC, XLR, power-extension, ect.) 
We are fortunate to have an audio-board & mics everywhere we need to stream from, but you could easily add an audio-mixer and extra microphones to this list.  

Finding a cost-effective and reliable way to get an HD/SDI video signal into a computer was the most difficult, as industry-standard HD capture cards like Osprey cost well over $1,000 each. The best solution I found was to use a relatively new product called the Blackmagic Decklink Mini Recorder, which can be found on Newegg or B&H for under $140. This card supports capturing up to 10-bit uncompressed HD video with 8/16-channels of audio via SD, HD/SDI, or HDMI through one PCIe slot. (There are also external devices made by Blackmagic, but you need to be very careful to check computer compatibility before ordering such devices). We selected the computer components around this card, as using compatible components are critical to achieving high quality results... the recommended motherboards are found in the support notes for this product. We used the ASUS Gryphon Z87 with an Intel i7-4770K Haswell 3.5GHz CPU, 16GB Ram, Samsung 840 Pro SSD for the Operating System (Windows 7 Pro 64-bit), and 2x 500GB 7200RPM harddrives in a raid-0 (for recording). Initially we were planning on using Livestream for our platform -- with Livestream you have to do your own video-transcoding for every bit-rate (quality) that you want to make available to your users, which requires a heavy-duty processor & GPU (graphics card); but we have since signed the church up for a free YouTube non-profit account, and because YouTube now provides transcoding a  lighter processor would suffice (when streaming 720p, our build uses less than 20% with this CPU even though it only has a low-grade 2GB dedicated GPU). The computer was built into a 4U server rack chassis and took about 2 hours to complete; a 2U would have also worked, but it was more expensive and we had plenty of space.


From here we run the in-room audio through an audio-board/mixer and into the camera (via XLR), then the embedded audio and video comes out of the camera (via HD/SDI) to the input card on the computer. Once you have the video-input into your computer, the video data needs to be converted to a format that can be easily transported over the internet and seen on your viewers devices... this process is called encoding. There are a number of software encoders out there -- the most popular being Adobe Flash Media Live EncoderxSplit, Livestream's Procaster, and Wirecast. We are currently using Wirecast for YouTube. This software is nice because it's simple to use (very important if you need to train volunteers), and it can act as a digital switcher between inputs -- you will need the Pro version if you plan to use multiple live capture sources. With Wirecast you can also easily add desktop screen-sharing as a source via free software called Desktop Presenter -- for example you can capture clean video & audio output from software like PowerPoint and Renewed Vision's ProPresenterWe included a network switch in our streaming-cart to connect the streaming machine directly to any computer we were taking a "screen-share" from to avoid lag.

Next is the broadcast. Make sure you check your network upload speed before anything. Here are some example bitrates and resolutions to see what you can do with your connection -- if you want to send one 720p stream to your provider you will need at-least 2500Kbps (2.5 Mb/s) of upload bandwidth. If you offer a public network using the same internet connection you will want to limit their maximum bandwidth usage. You should stream using a wired Ethernet connection, don't rely on wifi! I know many people use different providers for their streams, and since that is not the focus of this post I will refer you to an active form on the topic at ChurchOnline Platform. An important note here though is that you need to make sure you use a provider that utilizes a Content Delivery Network (CDN) like AkamaiEdgeCastLimelight or Amazon's Cloudfront. YouTube uses their own CDN, and you can setup additional redundancy/distribution through Akamai if needed; you can find more information about CDN's in the fore-mentioned forum. In our setup Wirecast receives the video feed and broadcasts 1x 720p feed to YouTube who transcodes to lower bitrates -- YouTube can ingest (receive) a stream up to 1080, but we have found this unnecessary for now, and we receive more complaints about quality as users see "1080" as an option, get excited, and try to force a 1080 viewing experience when they don't have the network to support it.

YouTube is very good about identifying copyright-material, so we broadcast a placeholder graphic with copyright-free music playing anytime we play a video or other material not covered by our CCLI license. 

I hope this helps some of ya'll! I know there is a lot of information here, and there could be much more... again, let me know if I can clarify anything or add a topic that would be helpful. I'll try to post some [quality/detailed] pictures ASAP (9.23.13).

In Him,
Paul

No comments:

Post a Comment