Mobile Video Streaming Tools | How To Build A Portable Video Streaming Kit

12 min read

Robin Good Console

I have taken my first steps in to the world of live
video streaming in the first half of 2007.

An Italian audience have followed my
non-stop reports from several
of the largest bar camps held recently here in Italy.

They have seen
with how much passion and interest I have taken this new communication
challenge.

One of the nicest things to happen thanks to my voluntary
experimentation with live video streaming on RobinGood.TV,
was the opportunity to meet some truly fantastic people.

Those people, excited
themselves by my new video discoveries have offered in many different
ways their talent and skill to help me out.

Among these one has stood out the tests of time and has
invested
notable time and efforts to help me several dreams I had been playing
with. 

These included the ability to build a truly portable video
streaming station, together with added peripherals and functionalities
that would have helped me video stream hands-free from just about any
place, Justin-style.

His name is Fabio “Blaxwan” and he is a truly passionate
technology
inventor and experimenter moved by the desire to play and learn from
his own creations. 

He has helped me build an open back pack
for my portable laptop that makes my mobile video streaming orders of
magnitude easier and more comfortable than walking around like a fool
with your laptop open.

Also, as he recounts in deep detail in this
review, he has built a full remote control panel console integrating
monitoring and control functions for the laptop working with its lid
closed on my back.

Here are the details:

Intro by Robin Good

Robin Good Mobile Station

The “RobinPad” Story

by Fabio “Blaxwan” Di Niro

1. Overview

Last April (2007) I was attending a bar camp,
it was during a conference when I first met Robin Good.

I saw this funny man struggling with a laptop, webcam, radio
microphone and lots of wires as he was live video streaming the
Open Camp. 

Such view had two effects: the first one was that I
immediately started
to think about ways to build something that would avoid having all
those fastidious and uncomfortable wires and dongles.

The second effect was that I missed the conference speech.

Later on, I went back home and I was searching on the net for
more
info about this Good guy. I rapidly discovered that he was doing really
a great job by giving the possibility to those who could not attend the
bar camp to follow it live on their broadband connected computers at
home.

Then I thought I could have tried to help him out.

I sent him an email explaining
what I thought we could do and he just answered “Hi
Fabio, you’re the man I was waiting for a long time

then we started to have a lot of fun together experimenting new and
improbable mash-up devices.

This article describes the construction and evolution
of the so-called “RobinPad“, at least that’s how we called it. 

It is in
fact much more than a pad as it is a full remote control panel that
greatly complements the mobile Robin
Good video
streaming backpack allowing to have video feedback and the ability to
monitor and control all of the video streaming functions as he streams.

This unique, hand-made device was the first final tangible
product
generated by my active collaboration with Robin. He is a great guy who
does a lot instead of talking. I like that. And I did have a great time
building this rugged but functional device for his Robin Good TV.

2. Building a custom USB button pad

When we first thought about a remote control panel for the
Robin
Good streaming backpack we were trying to achieve at least some basic
functionalities:

  • having a preview of the cam
  • having some information about the system
    like connection status, available bandwidth, battery status etc.
  • having the possibility to start and stop
    the video
    streaming at will

To accomplish these goals we needed a small, lightweight
portable
LCD monitor and some panel buttons. Online we saw that there were a lot
of monitors in many different flavours so this was not an
issue. 

On the
other side we had to find an input device that needed to be fit in a
control panel next to the monitor itself.

We first thought about using USB number pads
but we
discovered that these were too big. Then we went on to custom I/O cards
(like a PIC based one that communicate via RS-232) but this kind of
communication would need more software development. 

So I thought to buy
a small joypad and just adapt it to our own specific needs. 

RobinPad 3

So for the first few times, Robin and I went streaming live
with
this joypad fastened to our trousers belt. We soon found out that this
was definitively not so comfortable. 

On the other hand I soon realized
that there existed a lot of software out there that could have taken
great advantage, in different ways, of our standard and popular
joypad. 

This is when I decided to take out and use just the
electronics of
the joypad in order to convert it into a simple box that could be more
easily matched and installed next to the small LCD monitor.

I carefully unscrewed and opened the joypad to see how I could
embed
it into a smaller box. Of course these instructions cannot apply to all
joypads because circuits and technologies may vary from brand to brand
and also through different models. 

So what I’m writing here is just to
give you a good basic idea of how I approached it.

RobinPad 4

Upon opening the joypad, I immediately noticed that the
electronics
of the unit were made by three circuit boards: a main one containing
the core chip, a cabling one and a third one (the bigger) containing
all the button contacts. 

I decided then to get rid of the third one
saving some space, and to replace it with a custom circuit board
holding my own custom buttons.

So I measured the remaining boards to determine the size of
the plastic box to buy.

RobinPad 5

After some research, I found this
plastic box shown in
the picture below, which was actually a little bit smaller than the
board it had to hold but I thought that it was better to trim the board
a little bit instead of using a bigger box (the bigger size was really
cumbersome). 

Together with it I also bought also ten board soldering
buttons.

RobinPad 6

At this point I had to prepare the board on which to install
our own
custom buttons. Since there were no particular needs for circuit
connections I decided to use a prototyping board and to wire it
directly to the joypad own circuit board. 

I placed the buttons on the
prototyping board and decided for its size, then I cut the board with
the Dremel,
and soldered the buttons.

RobinPad 7

Next I needed to prepare and finalize the box.
To do
this I sticked two paper tape stripes on it to ease the drawing of the
drilling points. Then I drilled the holes for the buttons and used
hot-glue to place a small piece of wood inside the box between the two
rows of buttons. 

That’s just for cosmetics. In fact this piece of wood
is used to screw and hold the circuit board in place in order to avoid
using any visible screws on the front panel.

RobinPad 8

Now I had to finalize the joypad circuit board.
First
step was to remove the unused board and trim the used one (I just cut
out the edge of the board where the two motors were soldered, as these
were luckily useless parts).

RobinPad 9

I soldered a common ground for some buttons, grouping them as
I saw on
the original button board of the joypad. Then I used some colored wires
to connect the custom button board to the joypad mainboard.

RobinPad 10

Finally, the last step was to
connect my custom buttons board to the joypad one.

RobinPad 11

Please note that the joypad we bought was made to connect both
to a
Playstation or a PC, so it had also a Playstation connector. 

Since I
disliked this additional useless connector, the very last step was
opening the connector, cutting it’s wires and insulate them with some
tape, so that the pad would have just one connector at it’s end.

RobinPad 12

Here follows a picture of the button pad,
once completed:

RobinPad 13

3. Building an adjustable remote control panel with holding
arm

RobinPad 14

Here our goal was to create a
device that would
have helped to carry and see the remote control panel hands-free. The
idea was to get the control panel to be visible to Robin as he was
moving and streaming live.

We considered different solutions like
something to tie to the pants belt or to the backpack belt, but at the
end of the game we finally opted for a flexible arm coming out from the
backpack itself (lately we realized that this was uncomfortable as
well).

With this kind of solution, the first step was to build a
supporting
plate that needed to hold the button pad and the monitor at the same
level in front of Robin.

I decided to build this part by using some
plastic
and taking advantage of a PVC pipe, like the one utilized in sewage
systems. Happily I had a brand a new one, and I cut it and placed it in
the oven at a temperature of about 130 C. 

After 8-10 minutes it was so
tender that I could easily take it out and hold it firmly by using two
sheets of wood. Then I prepared a base to properly bend the PVC sheet
in order to give it the right shape for holding the buttonpad and the
monitor.

RobinPad 15
RobinPad 16

At this point I cut a rectangular piece from the PVC sheet a
little bit
bigger than required (because I knew I couldn’t be so precise in
bending it) and put it again in the oven for another 5-8 minutes at 130
C. 

When the PVC was again soft enough, I took it and placed on
the base
and pressed it hard by utilizing some other plain-surface heavy objects
for a few minutes, until it cooled down again.

RobinPad 17

After some minutes the PVC piece was cold enough to continue
to work on it.

RobinPad 18

So I placed the monitor and button pad on it and first drew
and then precisely trimmed the contours.

RobinPad 19
RobinPad 20

To build some rigidity in the flexible arm
that would
be holding the remote control panel (otherwise the weight of the
monitor and control panel would have it would have it fall down) I
decided to use some steel wires.

I gathered together several steel
wires, gave them some shape and hot-glued them on the bottom of the
holding plate. 

Then I inserted the wire bunch in a corrugated plastic
pipe and, on the other end, I just bended out the wires and hot-glued
them in a larger pipe that may be easily screwed to something that I
had to attach to the backpack.

Robin Pad 21

Last step was preparing something that would hold the flexible
arm
as we could not screw this to our belly. So we needed something where
we could screw our artificial holding arm in.

To achieve this I cut a thin piece of wood to the size of the
Vaio
notebook Robin Good carries in the open backpack. My ideas was to
basically pace this wooden platform between the Vaio and Robin’s back
inside the backpack.

RobinPad 22

Work done! The “suspended” remote control panel device (of
course the
elastic stripe were just a temporary solution, they were replaced by
velcro stripes):

RobinPad 23

4. First evolution: building a case for the backpack

RobinPad 24

After some further experimentation with the mobile Robin Good
streaming station, we realized we wanted to further improve things.

The quantity of dongles, batteries, peripherals, cables and
connectors had grown to such an extent, especially after the adoption
of the small tube camera Robin carried in its hat, that we badly needed
to do something about simplifying and organizing all this stuff in a
better way.

The
new lipstick-sized camera in Robin’s hat had in fact only a
composite video output so we were forced to add a video-to-USB
converter. 

In addition to this, at this time Robin opted for
a smaller, higher performing and longer-lasting VAIO
notebook,
but the new baby had unfortunately no composite video output (which we
badly needed for powering the small portable monitor). 

Here too we
forced to add a VGA-to-composite
video converter. There were just too many things hanging out
of Robin’s open backpack.

This is why I decided that the best solution
would
have been to put all these things together inside a properly designed
and compact box to place/attach on open backpack. This way I could
integrate all the cables and simplify the use and the look and feel of
the system.

Since I also wanted to have a nicely-shaped for this box, I
steered
away from traditional rectangular boxes and went straight to a big
bricolage-shop
to get some fresh ideas. 

There, in the shelves where all the electric
pipes are shown, I immediately found something interesting. I bought
those two plastic shells you see here below. 

These strange shells are
traditionally used to bend into the wall the plastic square pipes that
are used to run wires alongside a wall. I don’t know if I gave you a
good idea of what they really are for, but what matters is that they
were perfect for our purpose.

RobinPad 25

Back home I just resized the two shells and cut a matching
shape in a
thin sheet of wood in order to create a closing panel for them. I then
painted in black both the base and the “shells”.

RobinPad 26

Once I had the box completed, I started to drill some holes in
it to
screw the connectors and the switches. I assembled then all the
circuitry soldering and all the other stuff. I finally used rubber
bands to hold the set of batteries together to the converter to the box
base.

Here are the results

RobinPad 27
RobinPad 28

5. Building a Robin Good TV light sign

RobinPad 29

At this point we thought we had some interesting gear in our
hands
and our desire was to share and advertise the fruit of our work so that
people would notice Robin when he was doing live streaming.

But instead of using a simple printed sign, I
wanted to build something that could have been switched on when the
Robin Good mobile backpack was streaming. 

I therefore decided to build
a light sign with some Plexiglas
and LEDs.
Nothing fancy at all, as it was really simple to build one this way and
I had a lot of fun experimenting with those materials I wasn’t familiar
with.

As a first step I cut a piece of
Plexiglas (acrylic
glass) and painted on it the sign lettering (Robin Good TV – On Net) by
using a painting mask.

This is in fact was created using liquid latex
that gets dry very fast and may be easily removed just by using the
fingers.

RobinPad 30

Then I sprayed the whole front surface with black paint and,
after the paint had dried, I removed the masking.

RobinPad 31

The last step was the one of carving into the sign the place
through
which to show the white LEDs that I had soldered in the back.

RobinPad 32

Work done!

RobinPad 33

6. How it all works

RobinPad 34

For the “action” part on the remote control panel, the
RobinPad runs
a great scripting tool called Autohotkey. With it you may process user
input and perform some actions like clicking somewhere in the
screen. 

This is essential because we’re using an internet streaming
site to
video stream (normally that is Ustream)
which in turn requires a Flash encoder launched from the browser to
run. 

Due to this set up we cannot switch to a custom encoding
system,
but I’m really confident that sooner or later we will move to this kind
of set up.

The basic idea of the button pad is
to use the
upper row buttons for fixed and frequently used functions and to leave
the lower row of buttons for general purpose functions. 

In the bottom
row the buttons change their functions contextually and can perform
therefore multiple tasks. In this way we can utilize more functions
than the number of buttons we have physically available (10).

The core buttons in the upper row
perform these basic functions (from left to right):

Menu

  • Start streaming
  • Lock/unlock the buttons (to avoid accidental press)
  • Start recording
  • Stop recording

Those in the lower row perform the functions shown in the
following
menu screens and which can be cycled through by pressing the “Menu
button.

The first image here below is the Menu1 and the second and
third images are the Menu2.

RobinPad 35

Later I also added a splash screen that is shown when the
system starts as well as a “locked” warning that
is displayed when the pad is locked (through the central upper button).
Obviously I added also an “unlocked” message that
is shown when the central upper button is pressed again:

RobinPad 36

For checking all functions inside the remote
control panel monitor,
we have devised ways in which Robin can see the actual controls and
feedback indicators, including his video feedback, as they are
displayed from Ustream and replicated at lower resolution on its small
monitor. 

Next to streaming feedback controls I have added for Robin a
monitoring application called SysMetrix
which further provides Robin with real-time numerical indications of
its remaining laptop batteries time, CPU temperature, bandwidth in and
out.

7. What next?

I and Robin do realize that there are a million improvements
we
could still do to this setup. But this is the joy of building something
yourself.

Starting from the reliability of the overall
physical set up which is not yet rock solid, to the need
of adjusting our customer control software as Ustream keeps changing
and improving its own interface. In fact, the best would be writing a
real, dedicated software for this system.

But let me try to summarize here
all of the
improvements we already took into serious consideration and the general
direction in which we want to move this project further.

From an hardware point of view it
would be nice to:

  • prepare another plastic holding base
    for the monitor and the button pad without the “holding arm“.
  • This way Robin
    may
    decide alternatively between using the artificial holding arm or simply
    just hide the remote control panel inside his jacket without using
    flexible support arm. When he needs it he can take it out of his pocket
    and use it. Yes this deserves one hand.

  • put some Velcro
    on the remote control panel
    and on the backpack belt so
    that the remote control panel can be attached on the belt itself
  • add support for a set of earphones
    so that
    Robin may have an audio feedback channel to be used for either talking
    to the audience or to receive indications from a possible control room
    through a VoIP
    Skype-like connection.
  • thinking about a
    mini-ITX
    motherboard to evolve all the system in a really embedded and
    self contained mobile streaming station (wow)

From a software point of view

it would be
nice to:

  • find a piece of software that is able to play
    a mp3 file

    “into” the
    microphone input in order to have some music background streamed in the
    video (the internet streaming site is accepting audio just from one
    source at time)
  • try to leave the internet streaming site
    or get rid anyway
    of the need to use the browser and Flash encoder. 
  • Once this step will
    be accomplished we will go for a more reliable Linux system (and we
    don’t have to modify the SW to remap the mouse clicks every time that
    the streaming site changes the Flash encoder)

  • write down the application for the Linux box
    trying to keep all the functionalities we have now.
  • keep the whole software system as much
    modular as we can.

    The final goal being the creation of a setup where Robin can stream
    directly from the RobinPad.
  • Yes adding video capture functions to it, or where he could stream to a
    main control room where his signal will
    be mixed up with the one of other reporters streaming from other
    locations or with the video of someone wanting to interact from home.

This the end of the story for now.

We are continuously working to make new improvements to the
RobinPad
and if you follow RobinGood.TV you may be able to see Robin at work
with it very soon.

Originally written by Robin Good at MasterNewMedia as Mobile Video Streaming: Building A Remote Control Panel For A Portable Videostreaming Box – The RobinPad Story on August 21 2007. Some Rights Reserved.

Author