Software

Software

Software

While hardware aproaches are usually the best, sometimes software sneaks into our lives too.

Dante Controller

Dante Virtual Soundcard

Bitfocus Companion

Ffmpeg Commands

OBS Studio

ProPresnter

Resolume Avenue / Arena

Resolume Wire

NDI

Unity Intercom

Unity Intercom

Unity Server

Unity Server

Unity Intercom makes several software products that brings intercom to mobile devices (iOS & Android) and Desktop machines (macOS & Windows). This is accomplished through a client application installed on the device and a server (either running on macOS or using Unity Cloud).

Ross Video

Ross Video

Dashboard

Ross Dashboard

Templates

Derivative

Derivative

TouchDesigner

TouchDesigner

FFmpeg

FFmpeg

Useful FFMPEG Commands

FFMPEG Commands

Record HLS Stream from Beginning (or as far back as segments go)

ffmpeg -live_start_index -99999 -i 'http://domain.com/hls/master.m3u8' -c copy output.mkv

Timeslip one Decklink to Another

ffmpeg -re -i output.mkv -f decklink -pix_fmt uyvy422 'DeckLink SDI (2)'

Mirror HLS to directory via FTP: 

ffmpeg -i http://remote.com/hls/segs/master.m3u8 -c:a copy -hls_time 9 -hls_list_size 3 -hls_wrap 0 -start_number 0 -hls_allow_cache 0 -segment_list_flags +live -hls_flags delete_segments ftp://ffmepg@domain.com:password@ftp.domain.com/master.m3u8

Split Video By Silence

ffmpeg -i input.mkv -filter_complex "[0:a]silencedetect=n=-90dB:d=0.3[outa]" -map [outa] -f s16le -y /dev/null |& F='-aq 70 -v warning' perl -ne 'INIT { $ss=0; $se=0; } if (/silence_start: (\S+)/) { $ss=$1; $ctr+=1; printf "ffmpeg -nostdin -i input.mkv -ss %f -t %f $ENV{F} -y %03d.mkv\n", $se, ($ss-$se), $ctr; } if (/silence_end: (\S+)/) { $se=$1; } END { printf "ffmpeg -nostdin -i input.mkv -ss %f $ENV{F} -y %03d.mkv\n", $se, $ctr+1; }' | bash -x https://stackoverflow.com/questions/36074224/how-to-split-video-or-audio-by-silent-parts#comment63050906_36077309

ffmpeg -i srt:remote.com:port?mode=listener -f lavfi -i anullsrc=sample_rate=48000:channel_layout=mono -filter_complex "join=inputs=3:channel_layout=octagonal:map=0.0-FL|0.1-FR|1.0-FC|1.1-BL|2.0-BR|2.0-BC|2.0-SL|2.0-SR[a]" -map 0:v -map "[a]" -f decklink -pix_fmt uyvy422 -s 1920x1080 -r 60000/1001 -ar 48000 "DeckLink Duo (2)" https://discord.com/channels/494428283094564864/494428766525718528/939278974410952745

Stream Static File to Youtube

You may need to update the video parameters to meet newer Youtube recommendations for stream ingest {.is-info}

ffmpeg -i "input.mov" -deinterlace -vcodec libx264 -pix_fmt yuv420p -preset medium -r 30 -g 60 -b:v 2500k -acodec libmp3lame -ar 44100 -threads 6 -qscale 3 -b:a 712000 -bufsize 512k -f flv "rtmp://a.rtmp.youtube.com/live2/key"

Stream Local File to Facebook

You may need to update the video parameters to meet newer Facebook recommendations for stream ingest {.is-info}

ffmpeg -i "input.mov" -deinterlace -vcodec libx264 -pix_fmt yuv420p -preset medium -r 30 -g 60 -b:v 2500k -acodec aac -ar 44100 -threads 6 -qscale 3 -b:a 712000 -bufsize 512k -f flv "rtmp://rtmp-api.facebook.com:80/rtmp/key"

Output file with timestamp record of every blackframe

ffmpeg -i "file.mp4" -t 00:00:40 -filter_complex "[0]trim=start_frame=0:end_frame=1[c];[c][0]blend=all_mode=difference,blackframe=amount=98:threshold=32" -f null - 2>&1 | grep blackframe > output.txt

Use "difference" blend mode to find all subsequent occurances of frame

This can be useful to find every instance of where a video loops if given a single still frame by matching future occurances of that single frame (which are written to output.txt) ffmpeg -i "input.mp4" -t 00:00:40 -filter_complex "[0]trim=start_frame=0:end_frame=1[c];[c][0]blend=all_mode=difference,blackframe=amount=98:threshold=32" -f null - 2>&1 | grep blackframe > output.txt

Create Visual Audio Spectrum from Input File

ffmpeg -i input.mkv -filter_complex "[0:a]showspectrum=s=854x480:mode=combined:slide=scroll:saturation=0.2:scale=log,format=yuv420p[v]" -map "[v]" -map 0:a -b:v 700k -b:a 360k output.mkv

Capture raw DV video over firewire and save to file (Mac only)

ffmpeg -f avfoundation -capture_raw_data true -i "DV-VCR" -c copy -map 0 -f rawvideo capture.dv

To convert to Prores LT with proper color metadata: ffmpeg -i capture.dv -c:v prores_ks -profile:v 1 -colorspace smpte170m -color_primaries smpte170m -color_trc 1 -c:a copy -movflags +write_colr capture_prores.mov {.is-info}

VizRT

VizRT

NDI

Downloads

NDI Tools for Windows

NDI Tools for MacOS

NDI Analysis for Windows

See also, NDI Protocol

Audinate

Audinate

Dante Controller

Dante Controller

Dante Controller provides essential device status information such as device-level latency and clock stability stats, multicast bandwidth usage, and customized event logging, for devices on a Dante network.

Product Page

https://www.audinate.com/products/software/dante-controller

Download

https://my.audinate.com/support/downloads/dante-controller

The downloads of Dante Controller are walled-off behind a user sign in area. You can use this generic login if you'd like to avoid creating an account:

Email: audinate@gustr.com Password: audinate

Audinate

Dante Virtual Soundcard

Dante Virtual Soundcard

Dante Virtual Soundcard is a simple, easy-to-use software application that turns a Windows or Mac computer into a Dante-enabled device, enabling you to instantly connect to any Dante network. Dante Virtual Soundcard uses your computer’s Ethernet port to communicate with other Dante-enabled devices on the network.

Product Page

https://www.audinate.com/products/software/dante-virtual-soundcard

Download

https://my.audinate.com/support/downloads/dante-virtual-soundcard

Activation

Each Dante Virtual Soundcard license can be activated four times before you receive the error “The license has been activated too many times” preventing further activiations. {.is-info}

Networking

Dante Virtual Soundcard only works on untagged VLANs. If your network interfaces has multiple VLANs trunked, Dante Virtual Soundcard will only communicate on the untagged VLAN.

IGMP Snooping Forwards All on macOS

macOS machines running Dante Virtual Soundcard will likely lose clock-sync and mute when IGMP Snooping is engaged on many switch manufacturers. The macOS and many switch configurations do not refresh the Time-To-Live for multicast subscriptions, and thus the clock falls silent. You’ll know this is the case if Dante Controller shows “Listening” status. To address this manually forward multicast traffic to the ports the Mac is using. Related to https://serverfault.com/questions/819793/os-x-network-stack-ignores-igmp-membership-queries

10Gb Ethernet on macOS

Dante Virtual Soundcard (transmission) does not work on any 10Gb ethernet ports on macOS. You'll have to use a Thunderbolt to 1Gb Ethernet adaptor if you're using a machine that has a 10Gb ethernet port. http://duc.avid.com/showthread.php?t=410371 The reason for this is the 10Gbps Ethernet port on macOS does not support PtP (Dante Clock) correctly, rendering it useless for Dante. This is an Apple hardware/driver issue which also impacts other protocols that need PtP clocking, and with nothing Audinate can do to fix it. (According to Audinate, Apple fixed this issue in macOS 12 Monterey)

OBS Studio

OBS Studio

OBS Studio

Open Broadcaster Software (OBS Studio)

OBS is a free and open source software for Windows, macOS and Linux with video recording and live streaming functionality.

Download

https://obsproject.com

Previous Software Releases

Discord

https://obsproject.com/discord

Bitfocus

Bitfocus

Bitfocus Companion

Bitfocus Companion

Works with or without Elgato Streamdeck, includes web based Streamdeck emulator. 

List of Modules included with Companion: https://bitfocus.io/support 

Each module gets its own repository on Github: https://github.com/orgs/bitfocus/repositories

Download

https://bitfocus.io/user/downloads

The downloadable builds of Bitfocus Companion are walled-off behind a user sign in area. You can use this generic login if you'd like to avoid creating an account:

Username: bitfocus@gustr.com

Password: companion

Download Beta Versions

You can download direct from S3:

https://s3.bitfocus.io/builds/companion/companion-x64-{commit number}-beta-{8 chars from commit hash}{.tar.gz|.exe|.dmg} (get the commit info from the beta branch). This method also works for downloading release builds, just change beta for the version tag.

 https://discord.com/channels/494428283094564864/494428283568390147/996647775515201547

Renewed Vision

Renewed Vision

ProPresenter 6

ProPresenter 6

ProPresenter has announced effective January 31, 2023, ProPresenter 6 will be no longer supported or updated and the ProPresenter 7 upgrade discount will no longer be available. See ProPresenter 6 End of Life FAQs for more information. {.is-warning}

Tips and Tricks

Changing Underline Font Color

Sometimes ProPresenter will do funky things when setting a highlighted portion of text that includes an underline. When this occurs, ProPresenter will display an underline that is not the same color as the text highlighted. To fix this, you must manually set the underline color in the Text Style dialog.

Edit the slide, and go to the Text Properties tab. Click the 'Edit Text Style' option. (The button with an 'A' on it), then from the underline option select color and set the underline color.

Managing Media Automatically.

ProPresenter by default is set to manage media automatically. This means ProPresenter will copy all media imported into ProPresenter in a folder (called 'Renewed Vision') and will sort the media into subfolders so the application knows where each file is. This is very helpful if you are importing things from external drives, or don't want to physically manage media locations manually.

Configuration and Media Transfer

Below are the files that need to be transferred to copy a machine's configuration over to another Mac.

ProPresenter Library Documents

~/Documents/ProPresenter6/(entire folder)

ProPresenter Managed Media

~/Renewed Vision Media/(entire folder)

ProPresenter Support Files (Cache, Clocks, Templates, Stage Display, Playlists, etc)

~/Library/Application Support/RenewedVision/ProPresenter6/(entire folder)

ProPresenter Preferences

~/Library/Preferences/com.renewedvision.ProPresenter6/ (entire folder)

~/Library/Preferences/com.renewedvision.ProPresenter6.plist

Renewed Vision

ProPresenter

ProPresenter

ProPresenter is a cross-platform (Mac / Windows) lyric and media presentation application built specifically to make high-quality live productions easy — productions include worship gatherings, sporting events, conferences, or even broadcast television.

For full information regarding ProPresenter, refer to the ProPresenter documentation.

Documentation >

Download

https://renewedvision.com/propresenter/#download (Click Download Only at the bottom left of the form to skip to the direct downloads)

File Format

Presentations created in ProPresenter are saved with a .pro file extension. Prior to ProPresenter 7 files included the version number in the extension, for example .pro6, .pro5 letting you know which version the presentation was created in.

ProPresenter 7 files are no longer XML formatted, instead they are using Google Protocol Buffers, meaning you need this library to create/decode the buffers. (Read more here, or here, or here)

File Configuration Locations (macOS)

ProPresenter Library Documents ~/Documents/ProPresenter6/(entire folder)

ProPresenter Managed Media ~/Renewed Vision Media/(entire folder)

ProPresenter Support Files (Cache, Clocks, Templates, Stage Display, Playlists, etc) ~/Library/Application Support/RenewedVision/ProPresenter6/(entire folder)

ProPresenter Preferences ~/Library/Preferences/com.renewedvision.ProPresenter6/ (entire folder) ~/Library/Preferences/com.renewedvision.ProPresenter6.plist

Resolume

Resolume

Resolume Avenue/Arena

Resolume Avenue/Arena

Resolume Arena is a software application (for Windows and macOS) enabling real-time video and audio playback, manipulation, and effects processing. It is commonly used in live events, AV productions, concerts, corporate events and more.

Resloume allows users to map video content to various surfaces and shapes, such as flat screens, projections, and 3D objects. This can be done using a variety of mapping tools and techniques, including corner pinning, edge blending, and surface deformation.

Resolume Arena also allows users to play out video content in a variety of ways. They can choose to play video clips in sequence, play them randomly, or play them based on certain triggers or events. Users can also adjust the speed, looping, and direction of video playback, as well as apply various audio and video effects to the content.

In addition, Resolume Arena has a number of features that allow users to control and manipulate the playback of their video content in real-time. This includes the ability to use midi controllers, OSC (Open Sound Control) devices, and other hardware to control the playback of video clips and effects. Users can also use the software's built-in timeline editor to create more complex and synchronized video playback sequences.

Different Editions (Avenue vs Arena)

Resolume Arena has the following features that Resolume Avenue doesn't:

For a complete (and up to date) list of differeneces, see Differences between Avenue and Arena.

Resolume

Resolume Wire

Resolume Wire

2110 Basics

What is 2110?

2110 is a replacement for SDI that transports uncompressed video over IP networks. 

 

Is it like NDI?

In that it is video over IP, yes, but in many ways no. 2110 is a SMPTE specification for uncompressed video, NDI is a proprietary protocol that compresses video. 2110 is designed for use with 10G network links or greater, whereas NDI must compress your video streams down to less than 1G of bandwidth.

 

Term Explanations

Traffic Shaping

Hitless merges

 

NMOS

 

IS-04 Registration

IS-05 Connection management

 

IGMP v2 vs v3

 

PTP v2

 

Multicast

 

Audio Conformance Levels

https://www.ravenna-network.com/smpte-st-2110-and-audio/

 

SSM vs ASM

ASM stands for Any-Source Multicast, and SSM, the preferred option for 2110, stands for Source-specific Multicast. With ASM the multicast client doesn't know the multicast sender's unicast address (source), only the multicast group IP's address. 

With SSM, the multicast client can specify which multicast sender's unicast address (source) in the multicast group it wants without having to discover them as it has to with ASM.

https://docs.ruckuswireless.com/fastiron/08.0.60/fastiron-08060-ipmulticastguide/GUID-90A4D045-734C-4CAD-A0D0-59A7C40FB83E.html

 

 

FFmpeg

FFmpeg Landing page

FFmpeg Home Page: https://ffmpeg.org

Useful Commands:

/en/software/ffmpeg/ffmpeg-commands