Thursday, 12 February 2015

Contribution on low budget

So we would like to take video contributions from anyone, but transmitting from location is traditionally very expensive. The leader of the pack are the products from TeraDek, and you should for proper production and broadcast consider these products.

But now, the poor mans version.

FMLE -> RTMP stream -> crtmpserver -> RTSP stream -> vMix/Vidblaster Stream Input RTSP over TCP -> External SDI -> CasparCG

The building blocks

Flash Media Live Encoder ( Mac or Windows )

Still probably one of the standards and used by a number of other products to be able to stream. This can be used stand alone as it takes a video and audio input, or with a number of software mixer. It is also available for Mac and Windows.

We will use the RTMP streaming and you need to match the output quality and data rate to what bandwidth is available.

The "FMS URL" and "Stream" will be where we are running the crtmpserver.

CRTMPserver ( Linux )

Small project that I think has gone unnoticed in the work of streaming, but ends up to be the quickest way to get the stream from a to be.

In my case I have a hosted webserver available and it was very quick to simple download (do not use the disto versions) the latest build, make a simple configuration change and launch it.

The change to the configuration is to enable the RTSP streaming option, and can be done in configs/flvplayback.lua file that is part of the download. Simple remove the remarks for the section


And launch as root to gain access to the port under 1024

sudo ./

I suggest doing this in a screen so you can keep an eye on it while making the connections.

Vmix & Vidblaster ( Windows )

Both these products are live video mixing environments, with graphical capabilities. They both can also output in a number of formats which includes SDI support.

In our case we have the Vmix with a BlackMagic Decklink Quad and we send the SDI outputs into the head end.

Putting it all together:
  1. Start the crtmpserver by running "sudo ./"
  2. You want to see inbound services:
  3. Now enter the correct "FMS URL" into FMLE. The crtmpserver needs to change to your server, but leave the flvplayback the same, as that is the application name we used in crtmpserver.
  4. Press the connect button, and you should see some movement on crtmpserver
  5. You can now start the stream in FMLE which should generate more activity in crtmpserver. Seeing the stream register against the application is a very good sign. You will notice the name is the same as the value you have in "Stream"
  6. Connect from the client: The client will be connecting to the RTSP stream, and this stream excludes the application name. So the connection string would be rtsp://crtmpserver/live

    1. VidBlaster
      Modules -> Add -> IP streamer
    2. vMix
      Add input -> Stream -> RTSP over TCP
That is it!

Hope you have fun.

ProxMox Unprivileged LXC containers USB Drive

Some quick notes on bind mounting under ProxMox and getting the permissions right. Reference -