[Elphel-support] Multcast

Gary Mort garyamort at gmail.com
Fri Jan 28 05:39:51 PST 2011


Unless you plan on performing the computation on another computer[not 
the camera's],  multicast is not the solution your looking for.  
Multicast refers to using RTP to transfer the data from the camera to 
other computers. http://en.wikipedia.org/wiki/Real-time_Transport_Protocol

A basic television is a good example of RTP/Multicast.  If you turn your 
television on to a specific channel at 10PM and start watching a show, 
and I turn on my camera at 10:15PM to the same channel - we will both 
see the same show at the same time, I will simply have missed the first 
15 minutes.  The show is being "multicast" to all devices that choose to 
receive the show.

So using multicast in your use case, if you had 3 different processes 
that yield different results, and you wanted them to all be done in 
realtime on different computers, you could stream the recording to those 
machines[the multicast function] and each machine could apply it's own 
different program to the data and store it.[or rebroadcast, etc]...and 
by the same token, if you have a single machine is fast enough, it could 
run 3 different programs each of which connect to the RTP/multicast 
stream and process the data...

See http://wiki.elphel.com/index.php?title=Camera_software#mencoder and 
the section on mencoder for how you can run a program on an seperate 
network connected system to capture the video as it is broadcast.  See 
the mplayer website for how you can add additional commands to mencoder 
to process the video as it is captured.

I'm not sure if all of this would really be necessary however, as the 
Elphel is running a linux operating system and can multitask, so I would 
imagine you should be able to run mencoder locally to process the video 
at the same time, or very nearly the same time, as your capturing it.  I 
suppose the benefit of designing your entire process/workflow to use 
mencoder in conjunction with RTP/multicast would be that you could do it 
all on the camera....and if you run into performance issues it is 
incredibly easy to move the processing to an external system since the 
same commands that run locally can run remotely.

Interestingly[to me at least], I just checked to 2 main libraries 
mencoder uses to process/encode video[libavcodec and x264] and neither 
of them are able to use a GPU for video encoding.  Their all pure CPU 
based with no plans on adding OpenCL/GPU enhancements.  So if you are 
planning on using additional systems for processing the video, adding a 
GPU to the system won't provide any benefit if using mencoder.

-Gary




More information about the Support-list mailing list