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

Postfix "unavailable. unsupported dictionary type 1111" on restart? Check your brackets!

I was recently modifying a Postfix config to do some debug logging of transactions for a specific IP addresses. To do this, I modified the smtp and smtps services in to get the most verbose logging possible. 

However, I'd failed to remember to encapsulate the IPv6 address with brackets. And so, I got this in the log after restarting Postfix:

Feb  5 18:28:29 l03 postfix/smtpd[21037]: warning: 1111:2222::7777:8888 is unavailable. unsupported dictionary type: 2a04
Feb  5 18:28:29 l03 postfix/smtpd[21037]: warning: 1111:2222::7777:8888: table lookup problem

(To confuse me, that address was also the one listed in a client_checks.cidr file I'd put together which was also part of my investigation).

And when that client was attempting to connect to send an email, I was seeing this:

Continue reading "Postfix "unavailable. unsupported dictionary type 1111" on restart? Check your brackets!"

How to make read-only 'virtual' exFAT directories for FTP users on Synology NAS running DSM 6

Update, December 2019: installing third-party scripts or package managers which run on boot may overwrite the file /etc/rc.local which I initially recommended using. I've revised this article to recommend a better autostart script directory; feel free to borrow the simple start/stop script I included at the end of this post.

I recently purchased a Synology NAS running DSM 6, and sharing directories via FTP is easy. In Control Panel, make sure the Shared Folder is defined, then using File Station, define access permissions (read, write, execute) for each group or user.

If you want an additional user for FTP access, you make your user (or make a group then add your user to that) then Allow access to the FTP application inside Control Panel -> Users or Groups. The permissions are inherited, UNIX style, to effectively restrict rights over folders and their files.

So far, so simple; this works great for everything on the NAS' internal storage, because by default it uses EXT4 filesystem which supports file & directory permissions and ACLs. On the terminal, a plus symbol at the end of an ls directory listing denotes the file or directory has additional ACLs applied, which can overrule standard UNIX permissions.

However, on any external drives connected to the Synology, for example a large USB3 drive for temporary storage of additional material, those drives may use file systems other than EXT4 so they're accessible by, say, Windows PCs. In this case, given we're probably also dealing with very large files, exFAT is a sensible choice - and the Synology does support exFAT, albeit there's a long story about that. tl;dr - pay $4 and just get the official exFAT Access package from Synology through the Package Manager, it's zero-hassle and has full read/write support. More info on supported external devices here.

One thing exFAT volumes lack when used through the Synology is support for any UNIX file and directory permissions. Normally that's acceptable, but if you're sharing files to other users, either via NFS, SMB or FTP, you may wish to use permissions to prevent accidental deletion - and on an exFAT volume, this means you can't.

But we can do read-only access with exFAT! It just requires some creative thinking...

Click to read the article and find out how