January 2023

So it’s the start of the new year and this year I’m going to update this ‘blog’ at the end of each month with some ‘stuff’ I’ve been up to or why I’ve not published much.

Week 1

… wasn’t a great start to the year. Lots of small bits and bobs. My MSI GF66 Laptop decided it would give up the GPU, which made some video work I was working on a challenge. I picked up a 24 port 10Gb switch, only to find it non functional, and I had a fair amount of parts from China arrive, in various states of functionality. Not really anything more to say tbh.

Week 2

… was better. I re-wrote my log off timer as I had lost the old VB.NET files, this time in C#. It didn’t take long to get the new code to where the old code once was, and then I added some sprinkles in the form of time given as an argument on execution, it’s now multi threaded (yea a log off timer needs threading), includes a warning dialog message and improved system calls.

I also started coding up a new web project that a friend and I are working on. Let’s call it project M. It’s a long way from completion, but I was happy with a good kick off that I gave it. I also added some analytics into the mix, of course 100% vanilla code, nothing being send anywhere else, and no third party API’s – I updated PHPQuickTableView PHPQuickAnalytics to help with this.

I had a onsite gig, tho I can’t remember the topic. 2 PPT Laptops, a Teams call, PTZ camera, and in house PJ/screen – a nice easy one to start the year.

Inspired by my log off timer success, I thought I’ld tackle some other app idea’s I’ve had floating about. So I wrote a VLC wrapper application that just has load, play and stop controls. It’s not quite what I want from the app but a someone new to C# I got alot more done that I though possible in just over an hour. I then continued down a few rabbit holes, soaking up my time, but I did learn a few things.

I got alot of paperwork, quotes, schematics, returns and other stuff like DIY at home done too. Productive week!

Week 3

This week was more work than play. I had 2 days onsite with a 120 panel UPAD 4 LED wall, and another on site with a couple of PPT machines. Both cars went in for repairs, which takes more time than you’ld think from your diary. I picked up a couple monitors and moved a tower computer back into the office and started to reassemble all of my files, software and VM’s. In between other tasks I chopped up another video for YouTube.

One interesting thing from this week was a script I wrote to generate audio ident files, and them combine them into multichannel audio files for testing stuff from vMix of FFmpeg ect. I certainly found myself a few hours into a FFmpeg rabit hole, with seemly endless options and use cases coming to mind that I wanted to try. It’s great fun, but dangerous on the calendar.

Bonus points; I found an old web development VM with some files that might be useful.

Week 4

I had a onsite job lined up where Quicklinks was in use so I thought I should brush up. So I completed the Quicklinks training, call manager and also cre8 (switcher). It looks very much like OBS meets BlackMagic atem interface with a touch of additions. The only benefit I see is the integration with the Quicklinks call system and AFAIK I have no clients using cre8.

I had a bit of a dive into software licencing in the OSS world, specifically FFmpeg’s. I think I’ve finally got my head around what NDI got wrong when they included it in the SDK, and why the headers/handlers/integration was removed from FFmpeg… I think. It also explains to me why vMix is ok including it in their installer.

Spured on by last weeks software success – I wrote a C# pdf wrapper. It does what i’m asking it to do, but it’s not quite what I want. I also dug into some old code that uses FFmpeg and dshow. I’ve not touched it in 5 years, and i have a project that needs something similar, but you can’t dshow to two apps at once, which is a tricky problem, so I think i’m going to have to use some DirectShow or media foundation graphs and use that instead.

Project M got an update; PDF’s including content that’s generated client side using Javascript. Again a rabit hole, but a problem now solved thanks to headless chrome. The project uses MathJax for LaTeX like markup. I updated PHPQuickAnalytics with a report daily query – used for mailing me daily via a scheduled task.

A few days on site doing a prerecord. Can confirm, 2 GPU’s (from the pro range, with link) doesn’t help vMix. This is interesting as i’m thinking about multi GPU for transcoding and well, it looks like scale up is the preferred software method. Someone on the job mentioned an idea to me – Stream Deck but with actual keys… here’s another rabbit hole: Playing with an Arduino – I managed to get it to be a HID device and faking a Stream Deck – more work needed.

Week 5 (2 days of it anyway)

Onsite for most of this week; driving an Analog Way Aquilon, some Novastar MCTRL4K’s, 70 panels of LED, Resolume for content ect. Had a weird Resolume issue where the file would play fine in one direction but not in reverse, Handbrake to the rescue. Stream Deck with Companion really cleans up operating cues over multiple boxes; as much as I don’t like all eggs in one operator basket, tighter cues is the upside. Here’s the end result;

Played some more with Stream Deck idea; Stream Deck original has a different hardware ID to the XL… interesting. But more interesting I now have push buttons on a Stream Deck working to a static web page, only using JS for native HID communication. Super cool to have the Stream Deck in a ‘serverless’ control method. I’ll Open Source it once complete.