Skip to main content

Posts

Showing posts from April, 2018

Raspberry Pi Video Streaming

I would like to send video over a satellite modem, but these things are as slow as 1990s era dial-up modems.  HD video with the H.264 codec streams at 2 to 3 Mbps, so the amount of data must be reduced by a factor of ten or twenty for low speed satcom. RPi with Camera Instead of running at 30 fps, one should stream at 1 or 2 fps and  most off the shelf video encoder/decoder devices don't know how to do that, so I dug a Raspberry Pi v3 and a v1.2 camera out of my toy box, installed gstreamer and started tinkering on my Mac to gain some experience with the problem.    Of course one can do the exact same thing on a Linux laptop PC, but what would be the fun in that? With the gstreamer videorate plugin, one can change the frame rate to almost any value and cranking it down to 1 or 2 fps is no problem.  One could go down to a few frames per minute, but super slow streaming could cause a playback synchronization issue, because the player error handler ma...

Open Sourcery

I recently encountered a nice looking video encoder/decoder device by a Canadian company called Haivision , which seemed to be able to do exactly what we needed.  These devices use OpenEmbedded Linux to do video streaming, so that one can take an SDI camera and stream the video over ethernet with MPEG-2 TS and decode it again on the other end. Multicast Route Bug Unfortunately, we found a multicast configuration bug:  The unit lacks a multicast route. The multicast route is explained in the route man page:   route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 This is an obscure one documented so people know how to do it. This sets all of the class D (multicast) IP routes to go via "eth0". This is the correct normal configuration line with a multicasting kernel. It can be fixed easily if I could log in with SSH and add the route setup in /etc/rc.d/rc.local .   Chain Gang Software However, after some backing and forthing with their customer support,...