Wowza Streaming Part 1–DIY Encoder Rig

After the Last CITRT event, I promised to start talking about streaming using home grown encoders / Wowza for streaming to the Internet and as a “low budget” solution for multi-site church.  Here is part 1: DIY Encoder Rig.

Goal: Build a DIY high end computer capable of delivering Live Streamed Video to multiple target platforms including Web / Roku / Set Top / Etc at multiple bitrates.  The computer will need to be able to ingest video and do high quality realtime encoding / compression and transmission.

First things first.  I am going to post 2 system recommendations.  My current system configuration, which is rocking and rolling, and a new configuration if I were building today!  By the way, I will likely go ahead and build a new rig to provide a complete walkthrough.  Besides I could use backup machine for emergencies!

Current Encoder Rig

Motherboard:MSI P67A-C43

CPU: Intel Core i7-2600K

RAM: 8GB

Video Card: nVidia GeForce GT 430

Video Capture Card: Black Magic Design DeckLink SDI

OS: Windows 7 Pro 64 bit

Streaming Software: Flash Media Live Encoder 3.2 w/ MainConcept AAC Addon

Building a New Rig

CPU: Intel Core i7-3770 Ivy Bridge (Wikipedia Link to Ivy Bridge)

Video Capture Card: BlackmagicDesign DeckLink Studio (SD & HD)

These parts are all usually available from Newegg.com.  Please double check that your motherboard will work with the Black Magic Video Capture Card prior to ordering.  Motherboard compatibility is what usually plagues this kind of implementation.

Look forward to Part 2 and on where we build up the Wowza Infrastructure.

, , , , , ,

3 Comments

KidPanel…Coming soon…To MP Near You

So for the last several weeks I have been busy building a new tool to use with Ministry Platform.  This new tool was inspired by our Children’s Pastor getting an iPad and wanting to monitor the number of children checked in each service.  Ministry Platform has all the data, but I wanted something more elegant and iPad friendly.  The next series of screenshots will give you an overview of tool and a “taste” of what is coming.  I will be making this tool available just like MPMobile in the coming weeks.  I thought this would get you excited in the meantime.

 

image

Login

The tool uses your standard Ministry Platform username / password.  The only thing required is a new security role.  You can name it anything you like, but I suggest KidPanel.  The security role can be configured in the configuration file, so you can truly use anything you like.

image

Current Checkin Events

This screen shows you the last 6 days of check-in events and presents the data as both graph and grid data.  By touching (clicking) either to graph or grid items you can drill in to more details about a particular service or check-in event.

image

Check-In Event Details

This screen offers a more exploded or detailed view of the event.  Right now we have wired group details in the form of a pie chart.  Gender break down in a blue / pink pie chart and a line graph offering the last 52 weeks of this event check-in data.  There is space for additional charts / graphs / data.  Last, but not least we have provided a text messaging interface.

Text Message (SMS) Interface

image

The Text Message (SMS) Interface is designed for multiple uses by Children’s Ministry.  From texting parents who are running late picking up their kids, to simply letting a new mom know that her child is fine and to enjoy the service, I put together the text interface to be flexible and easy.

image

Simply enter a family (household) number…which is conveniently printed on all child nametags.  This will return any parents with mobile phone numbers.  Simply choose one of them, type your message (Note it counts down for you), and then press send!

image

You are notified that the message is sent and next thing you know, text messages are received.

image

This tool is a work in progress, but shows you some of what is possible with Ministry Platform.  Over the next several weeks I plan to add a couple more graphs / charts and will be making sure the KidPanel tool will work for any Ministry Platform Church.  I am doing a number of tests with the Children’s Ministry at Calvary Chapel Melbourne to make sure we have a tool that meets their needs.  If you have ideas about other things the tool should do, shoot me an email or tweet and I will keep them in mind.  Again, this tool will be released to all MP churches free.  Check back in June, I will be ready to launch and share this new tool with everyone!

, , , , , , , , , , , ,

3 Comments

First Look at Windows 8 Server

My first attempt to load Windows 8 Server on VMWare failed with the best looked BSOD I have ever seen.  After applying Update 1 to VSphere 5, I have options to create a VM for Windows 8 Server.

Look 1: Installation

Installation was very straight forward, requiring approximately 6 clicks and one checkbox.  Afterward it seemed to load somewhat slower than Windows 2008 R2, but that might be due to a larger size.

w8-1w8-2w8-3w8-4

After 2 automated reboots the system came up and was ready.

Look 2: Installed

After install completed I was greeted with a new screen to set my password.  Some additional final setup steps….

imageimage

Look 3: Login Time

imageimage

After Logging in we are presented with the new and improved Server Manager

image

To make life easier, I am installing the VMWare Tools

image

After Installing VMWARE Tools, I want to add some additional RAM and another Processor, so I need to do a full shutdown.  Took a minute, but finally found it. (Have I mentioned I miss the start button yet?)

image

Now with 4 vCPU’s and 6GB of RAM, Boot time was only 30 seconds or so.

Look 4: Basic Setup

So we need to do the basics, enable RDP, change the computer name, join the domain, etc.

Enable RDP: From Server Manager, click the Local Server Option, and then

image

From the same screen, click the computer name at the top of the screen and you will be greeted with a familiar dialog where you can change the name of the computer. For grins I attempted to change the name and join the domain at one time.  Let’s see if this has been improved in the new version of Windows.

image

I was greeted with an error but the everything seemed to progress.  We will see if this works after a restart.

Great news!  Name change + domain join worked flawlessy.  Logging in as domain administrator to continue!

image

Look 5: Resources

imageAfter a basic installation and joining to the Domain, let’s take a look at what a basic install uses!

RAM: .9 GB

HD: 12.4GB

The hard drive space seems much higher than previous versions of Windows, but I assume that there are a bunch of new roles.

 

 

 

Roles and Features in Windows 8

Cool new feature, you can remotely deploy Roles to multiple servers from one interface.  That will make multiple installs to multiple servers in a setup scenario very efficient.

imageimage

Server Roles:

Looking forward to testing WebSockets as part of IIS 7.5.

imageimage

Features:

Excited to see the Windows Biometric Framework as part of the new features.

imageimageimageimage

For this first server, I went ahead and loaded some of the standard components we use at CCM.  SNMP service, IIS, websockets support and some others are being installed.  One cool item is that the configuration window can be closed while roles and features installation continues.

image

More to come from Windows 8 Server!

, , , , ,

No Comments

Wallmount TouchScreen Check-IN

Over the last year we have been building a new Kid’s Building.  We are nearing the end of the project and are preparing to open the building this weekend.  One of the fun new items (new for us) that we are deploying are 2 “touch screen only” check-in stations.  This will be a first for CCM.  So far we have always deployed keyboard and mouse based check-in.  Another fun difference is that the touchscreen based kiosks have been permanently installed.

Huge thanks to the Tim and the guys at the woodshop for mocking up the plans and getting these built and installed for us.  This weekend is going to be great.

IMG_0412  IMG_0411IMG_0409  IMG_0413

Parts List: Wood, laminate (cherry and black), Lenovo M90z Touch Screen Computer, Dymo Label Printer 450

Ministry Platform ChMs Check-In

, , ,

No Comments

Monitoring Wowza ConnectionCounts in What’s UP Gold

imageFor quite some time, years in fact, I have thought it would be really great to integrate data collection about the number of active connections from Wowza directly into What’s UP Gold.  This would allow for historical trending, and would keep the data in a place where other IT metrics are already stored and kept.  Here is a preview of the graph and the setup process!

image

WOWZA Setup

wowza_logo

The Wowza Setup is actually really simple.  The only required step is to open the ConnectionCounts HTTPProvier up with no security.  I have tried to get this method to work with security turned on, but it simply won’t work.  As a work around, I limit access to port 8086 (The Administrative Port) to only my network.  This works on EC2 Wowza Instances as well.

To enable this, you will need to edit the VHost.xml file.  This file can be found in your [Wowza-Install]/Conf folder.  Opening the file up you need to find the following lines of code:

image

Make sure the AuthenticationMethod is set to none.  Save the file and restart the Wowza service on your server.

If you use Amazon EC2 Wowza Instances, you can add this Vhost.xml file to your startup package.  Many thanks to Ian Beyer (@ianbeyer) for chatting with me through the setup on this!

What’s UP Setup

The What’s Up piece of this is what took me the most time!  It tooks hours of research to find that it is incredibly simple.  Here we go:

Step 1: Right Click –> Properties on your Wowza Server (I hope it’s already in WUP)

Step 2: Performance Monitors

image

Step 3: Click the New Button

image

Step 4: Choose Active Script Performance Monitor

image

Step 5: Set Up the Monitor

image

- Name the monitor

- Make sure the Script Type is VBSCRIPT

- Paste the following code into your Script Text Field

url = "http://[YourWowzaIPorURL]:8086/connectioncounts"
xmltag = "ConnectionsCurrent"
nValueToGraph = 0

set xmlDoc = createobject("Microsoft.XMLDOM")
xmlDoc.async = "false"
xmlDoc.load (url)

set xmlCol = xmldoc.getElementsByTagName(xmltag)

nValueToGraph = CINT(xmlCol.item(0).text)

Context.SetValue nValueToGraph

That’s it!  Give it a few minutes to start getting data collected and you can visit your device status report to see a pretty new graph!  The data is collected and logged on 10 minute intervals, so you need to wait at least 10 minutes!

 

Chris Kehayias – Wowza Stats on What’s UP Gold.

, , , , , , ,

3 Comments

A Non-Designer Approach to Complimentary Colors

Occasionally I need to take an image and make some design judgment calls to incorporate an image into a website or some other design / print item.  Somedays, my creativity doesn’t fire on all cylinders and I want to simply the process of choosing colors that work with my graphic element.  The following websites have tools / resources I have found useful for generating color palette’s and getting quickly to complimentary colors.

Color Palette Generator

http://www.degraeve.com/color-palette/

This is a very easy to use site that you can quickly point to your image and it generates a quick color palette that helps you get up and running quickly.

image

 

CSS Drive Colors Palette Generator

http://www.cssdrive.com/imagepalette

This tool provides a more complete color palette than the previous tool.  Same idea, but provides a more well rounded view of the colors of your image.

image

 

Color Scheme Designer

http://colorschemedesigner.com

This tool is just plain elegant.  Not only can you pick a color, but it provides other colors that would work well with your selected image.  This site also has the ability to give you a preview of the your selected color actually implemented in a website!

image

 

Adobe Kuler

http://kuler.adobe.com/#create/fromacolor

Nothing new to be shared here, but Adobe Kuler continues to be a great tool for finding complimentary colors.  With many different modes and many different ways of exploiting the color wheel, this tool needs to be mentioned and should remain in any toolbox!

image

, , , , ,

No Comments

When you’re gonna be Cheap on Storage!

First, I have to admit that I am die hard cheap about some things, and I have no beef spending in other areas.  Second, I don’t recommend this solution for everyone, but it has worked well and served us so far.  Third, in NO way NO how blame me for anything you read here!  I am just sharing my experiences on MY network!

We have been using a “bargain” SAN for the last several years and I think it’s time to share what our systems is and how it works.  First and foremost, we are using Open-E as the software platform to deliver our ISCSI SAN.  This software component (linux based) is loaded onto hardware and VIOLA you have a SAN.  For our hardware we have Supermicro Server Chassis with 3WARE Raid Cards. In the beginning we ran a separate network and connected each of our VMWARE hosts to that storage network.  Most recently we changed our network over to 10GBE for VMWARE hosts and each of our SAN’s.

image

This has allowed us a much more simple approach to connectivity, and afforded us the opportunity to single connect each device with unlimited scalability.  We were able to build our 60+ TB SAN for less than $20K.  This cost savings on storage enabled us to build some other really fun items, but I don’t want to color the world too pretty, there are some things that need to be done if you are going to use less expensive storage!

 

Things to Think About With DIY Storage

Questions to ask yourself?

1.  How good is my backup strategy? - Actually everyone should ask this question, but if you are going to go Cowboy and use less expensive storage, make sure your backup strategy is rock solid.  We use a combination of replication / disk to disk to tape backup to ensure our storage is safe.

2. What raid level am I running? - Make sure that you don’t go too cheap!  I know the numbers sound good on RAID 5 with no hot spare, but be smart!  We use RAID 6 on both our SANS and have adequate hot spares on each to make sure we can survive any drive failures.

3.  Don’t think Cheap!  Think DIY! - All of our hardware is highly redundant.  I can’t truthfully say fully because, there is only 1 motherboard, and 1 RAID card right now.  Good news!  The machine we chose is serious server hardware, has super redundant power and so far has been rock solid.  The RAID card selected (3Ware) is also very redundant.  The actual card can be replaced without loss of configuration or functionality of the SAN (I have actually personally tested this!).  The card stores all RAID data both on every drive in the array and the NVRAM of the card, so you can completely change the card and still be rockin!

4.  The Network is a must! - Don’t cheap on your network!  Nothing can kill a SAN project (DIY or Super $$$) faster than an unreliable network.

5.  Always pay for Support! - We gladly pay the super low price to Open-E every year to make sure we get software updates and have access to their engineers in the event that anything goes wrong!  The only problem we have ever had was caused by a failed attempt to hook up an Apple server via ISCSI.  It **might** work now, but I’m not holding my breath!

With budgets getting tighter and the constant need for more storage in our environments, this is one more way to meet the needs your ministry will likely place on you in the years to come!

, , , ,

No Comments

Firewalls Matter…Especially when streaming Live Video!

When you start thinking about streaming video, there are many things that can cause you problems (Network Topology, QOS, Switch Speed, Internet Bandwidth, Encoders, Decoders, etc), but one item often forgotten is your Firewall.  Nothing puts a strain on a network, and therefore Firewall, like high bitrate live video streaming.  I have seen firewalls choke live streaming implementations multiple times, and in each case it was the absolute last item thought to be tested and checked!

It’s all about the Packets Baby!

Nothing really explains the Firewall Problem likes Packets!  Video produces a ton of packets!  An unending onslaught of LARGE packets to be exact! This poses some problems to your firewall in the following ways:

- If you use IDS /Deep Packet Inspection / IDP / Content Filtering / ETC – These advanced features require CPU time and inspect data at the packet level.  Each packet traversing the firewall will need a significant amount of resources to complete each of these checks.

- Payload – Realize that each video packet will be substantially larger than your “normal” network traffic.  Video will attempt to maximize the MTU of the IP network and therefore will be transferring heavier packets than your normal web traffic.  These heavy packets will produce significant load on the network and therefore firewall.

All Firewalls are NOT Created Equal

It goes without saying that not all firewalls are created equally!  Some have more CPU’s, cores on those CPU’s and RAM.  Additionally they have different options, software features, and overall capabilities.  Silently, and behind the scenes, different firewalls have different capabilities when uploading versus downloading.  For example…most small business firewalls have tons of options, tons of software features, but when it comes time to test their capabilities with video, they will do exceptionally well receiving a video stream, but will choke when trying to send one!  Much of this comes from the design of the equipment.  We have seen many firewalls that can receive the stream (download optimized), but absolutely die when trying to pass the upload version!

What to Do?

First and foremost: choose an enterprise firewall.  Small Business firewalls are fine and great for campuses where you will be receiving the stream, but they will not hold up when you need to push a large stream.  Generally speaking, pick a multi-core firewall with a significantly higher maximum throughput than you actually intend to put through the system.  Remember: the maximum throughput is not computed with all the software features running.

Consider creating a separate network (dedicated interface) on your firewall where you disable all of this advanced security functionality and wire this network interface to a dedicated switch that interconnects your live streaming gear.  This will ensure that any corporate functions (email / backups / file transfers / etc) will NOT interfere with your  video streaming network, and will isolate and simply any needed QOS  / COS needs.

Test, Test, Test – It cannot be overstated enough that you need to test and monitor all aspects of your network during a streaming video implementation!

, , , , , ,

No Comments

Taking Check-In Skinning Further

MinistryPlatform has given us a really awesome platform for Check-In.  With the ability to theme check-in for various events, we have grown many check-in themes over the last couple of years, but recently I am most excited about this one.   This new Check-In skin incorporates the latest CSS3 elements to minimize the number of images and maximize visual impact.  This skin has only 2 images.  The background image and 1 2×2 pixel PNG to create the rounded translucent windows.  Everything else, all the buttons, hover states, etc., are all CSS gradients and other “goodness”.

image      image

Some of the most exciting elements in this skin are the ones not at first most obvious.  From a design perspective, any time the user needs to continue, the button is green.  Any time there is a chance to go backwards, those buttons are themed red.  Other buttons for important items are orange, and non-essential buttons are a pleasant gray!

 

Under the Hood!

Ministry Platform’s check-in system is completely template based.  Meaning you have full control over the CSS, and can create / specify multiple CSS files for multiple themes.  This flexibility allows for an unlimited number of styles and feels.  Below are just some of the styles we have used at CCM:

image     image     image

Changing Check-In skins is a breeze, and something that adds a little extra bling to an event.

, , , , , , , , , ,

No Comments