hammerheaddown
Member
So anyone who has had radio or TC experiecne know that some feeds come with DTMF tones, these tones are detected and then a advertisement is played.
been trying to do similar where OBS can detect it, with no real luck
one solution i have been working on is using multimon-ng and FFmpeg and Streamlink
I created a Youtube Live stream to emulate a live feed. I then use Streamlink to grab the youtube feed, then pipe that to FFMpeg.
for Multimon-mg to work it needs to be be a raw 16 bit wave file and 22.5k
so i grab the feed from streamlink -> ffmppeg --> Multimon-ng
multimon-ng detects the tone and writes the timestamp and DTMF to a .txt file
this is the code so far using a windows Batch File
its working BUT even though i have tried to clean up the audio sometimes it is still reading the wrong DTMF or something else may set it off.
I want to set this up to detect the DTMF and then trigger a Macro in OBS
been trying to do similar where OBS can detect it, with no real luck
one solution i have been working on is using multimon-ng and FFmpeg and Streamlink
I created a Youtube Live stream to emulate a live feed. I then use Streamlink to grab the youtube feed, then pipe that to FFMpeg.
for Multimon-mg to work it needs to be be a raw 16 bit wave file and 22.5k
so i grab the feed from streamlink -> ffmppeg --> Multimon-ng
multimon-ng detects the tone and writes the timestamp and DTMF to a .txt file
this is the code so far using a windows Batch File
@ECHO OFF
title FF Streamlink viewer 1.0
color 4f
cls
setlocal enabledelayedexpansion
ECHO.
ECHO Type in Youtube URL
set /p stream=""
: path to ffmpeg
set ffmpeg=bin\ffmpeg
: path to ffplay
set ffplay=bin\ffplay
: path to streamlink
set streamlink=C:\Program Files (x86)\Streamlink\bin\streamlink
: path to multimon-ng
set multimon-ng=bin\multimon-ng
timeout /T 2 > nul
echo.
cls
echo.
echo.
echo Sit back and relax and wait for the stream to start...
echo.
REM Pipe to check DTMF tones
"%streamlink%" --quiet --twitch-disable-ads "%stream%" best -O | %ffmpeg% -hide_banner -loglevel 0 -i pipe: -f s16le -acodec pcm_s16le -ac 2 -ar 22050 -af "highpass=f=300, lowpass=f=800, volume=15,afftdn=nr=30:nf=-20" pipe:1 | %multimon-ng% -q -t wav --timestamp -a DTMF -
its working BUT even though i have tried to clean up the audio sometimes it is still reading the wrong DTMF or something else may set it off.
I want to set this up to detect the DTMF and then trigger a Macro in OBS
Last edited: