Compiling the HTTP Substitutions Filter module for NGINX on CentOS 7

I use NGINX for various things, including one niche case, where I rewrite and replace strings before presenting them to the user. I do this using the HTTP substitutions filter module. The readily-compiled module to accomplish this is included with the paid NGINX Plus, but is also available to DIY compile if you have the ability.

If you're just looking for precompiled .so files you can use with NGINX on CentOS 7 available from the nginx.org repository, see the end of this post.

A while ago I took the time to work out how to compile this for updates; the CentOS box I run NGINX on uses yum packages for updates, but then the subs filter module stops working. So, after half an hour or so of tinkering, quiet swearing, obtaining of additional packages, tweaking commandlines etc... I have a working oneliner to make an NGINX build which will also compile a suitable ngx_http_subs_filter_module.so file. 

To compile this dynamic module you generally need to build with the same switches used for the packaged build. So, first step was to find out how it was compiled:

See how to check your compile flags, and how to build from source

Guide: Creating more professional livestreams with OBS & VoiceMeeter

I've used VoiceMeeter for years. It can be confusing at first, but its powerful features make it an invaluable tool. 

During this time, quite a few people have asked me about how to configure VoiceMeeter and OBS for their own streaming needs. More recently, questions about setting up a livestream or podcast streaming setup for going live on the web-based Melon and more fully-fledged Restream.io services prompted me to update and publish a guide I'd had in my drafts for some time. 

If you're a PC streamer, it's worth familiarising yourself with OBS and VoiceMeeter. This combo is really useful and opens up a tremendous amount of flexibility. 

There's a lot I haven't covered in this first guide. I've barely scratched the surface of optimising OBS for recording and streaming, particularly as there is so much to cover depending on whether you are Intel/AMD or NVidia/AMD for graphics, whether you have one or two machines for presenting/gaming and streaming... NDI also creates more possibilities in this regard.

And with regard to VoiceMeeter, there's also more to cover - VBAN (low latency, uncompressed networked two-way audio), VoiceMeeter's processing and effects, the wonderful virtual insert feature which lets you route audio into a DAW via ASIO and back into VoiceMeeter as an insert... All incredibly powerful features. 

I'll write further guides covering these - please leave a comment or tweet me with what you'd like to see. Likewise, if you spot any errors, please leave a comment or contact me on social media.

What is VoiceMeeter?

Scripted conversion of HyperDeck Studio ProRes videos to x264 with burned-in timecode

This article discusses how to loop through a folder of source files, manipulating the audio tracks, suitably encoding the video and burning text and timecode in the video.

Recently I worked on a project where the output of a vision and sound mixer was recorded to a HyperDeck for later review. The setup was referenced to master clock timecode from a Signal Pulse Generator (SPG), so the HyperDeck fortunately also embedded the timecode as a metadata track in its ProRes recordings.

I received a request to generate viewable files from the ProRes source, and burning the timecode on-screen (as you see with film rushes/dailies) was considered a good consistent reference for notetaking and discussion.

The requirement was to accomplish this without needing to use expensive NLE software or traipse into the office each night to use an edit suite. This session was in a hired facility miles from my usual workplace and I only had a Windows 10 laptop for company. But all we need is FFmpeg and FFprobe...

Click to read more and see my example script...
I ♥