[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