Skip to main content

Posts

Mac, Linux or BSD

The eternal question : Which is better - EMACS or Vi? OK, this post is actually about the other eternal question! As I use Linux, Mac, Open and Free BSD (Yes, and that other ball of wax too...), I think I can answer objectively: Both OpenBSD and FreeBSD are reasonably easy to download, install and run on pretty much anything. At least, I have not found a server/desktop/laptop computer that it would not run on.  I even ran OpenBSD on a Sparc Station - remember those? OpenBSD Theo De Raadt has a ' cut the nonsense ' mentality so OpenBSD is simpler, with a smaller repository of programs, about 30,000 packages. However, with a little effort, you can install FreeBSD software on OpenBSD to get the rest. After a few days of use, you will know how. The best OpenBSD book is Absolute OpenBSD: UNIX for the Practical Paranoid. In general, OpenBSD feels a lot like Slackware Linux: Simple and very fast. FreeBSD FreeBSD can also with some effort, run Linux programs ...

Compile The Latest Gstreamer From GIT

Compile The Latest gstreamer 1.15 on Ubuntu Linux 18.04 LTS While working on a way to embed Key Length Value (KLV) metadata in a MPEG-2 TS video stream , I found that ffmpeg can copy and extract KLV, but cannot insert it.  There were some indications that the latest gstreamer has something under development, so I had to figure out how to compile gstreamer from the GIT repository, to get the latest mpegtsmux features. The cryptic official gstreamer compile guide is here: https://gstreamer.freedesktop.org/documentation/frequently-asked-questions/git.html# As usual, the best way to do development work is on a virtual machine, so that you don't mess up your host.  I use Oracle Virtualbox on a Macbook Pro.  I downloaded Ubuntu Linux 18.04 LTS Server, made a 64 bit Virtualbox machine and installed the XFCE desktop, to get a light weight system that runs smoothly in a virtual environment. The problem with the cryptic official guide is that it probably works on...

Video Distribution With MPEG-2 Transport Streams

FFMPEG MPEG-2 TS Encapsulation An observation aircraft could be fitted with three or four cameras and a radar.  In addition to the multiple video streams, there are also Key, Length, Value (KLV) metadata consisting of the time and date, the GPS position of the aircraft, the speed, heading and altitude, the position that the cameras are staring at, the range to the target, as well as the audio intercom used by the pilots and observers.  All this information needs to be combined into a single stream for distribution, so that the relationship between the various information sources is preserved. Example UAV Video from FFMPEG Project When the stream is recorded and played back later, one must still be able to determine which GPS position corresponds to which frame for example.  If one would save the data in separate files, then that becomes very difficult.  In a stream, everything is interleaved in chunks, so one can open the stream at any point and tell imme...

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,...

Beyond the Intel Meltdown Bug

The Intel Page Table Bug and the Multithreading Bugs , have spurned many discussions and a lot of complicated hard work is going into mitigating it, but I am not convinced that the software mitigations are sufficient .  The problem will only really be solved once Intel fixes the bungle in their processor microcode (which is currently causing processor crashes causing the bungled Intel fixes to be withdrawn by Dell and HP), or make new silicon. Theo De Raadt seems to agree with me: "Solving these bugs requires new cpu microcode, a coding workaround, *AND* the disabling of SMT / Hyperthreading." The latest OpenBSD news on the mitigation of these bugs is here: http://www.undeadly.org/cgi?action=article;sid=20180824024934 and you should read this: http://www.undeadly.org/cgi?action=article;sid=20180815070400  I have written more than one assembler, linker and debugger when I was younger and computers were simpler.  I have found and fixed a bug in an Intel ...

Parasitic Quadrifilar Helical Antenna

This article was reprinted in OSCAR News, March 2018:  http://www.amsat-uk.org If you want to receive Satellite Weather Pictures , then you need a decent antenna, otherwise you will receive more noise than picture. For polar orbit satellites, one needs an antenna with a mushroom shaped radiation pattern .  It needs to have strong gain towards the horizon where the satellites are distant, less gain upwards where they are close and as little as possible downwards, which would be wasted and a source of noise.  Most satellites are spin stabilized and therefore the antenna also needs circular polarization, otherwise the received signal will flutter as the antennas rotate through nulls. The helical antenna, first proposed by Kraus in 1948, is the natural solution to circular polarized satellite communications.  It is a simple twisted wire - there seems to be nothing to it.  Various papers have been published on helix antennas, so the operation is pretty well ...