Last active
January 29, 2016 11:05
-
-
Save Befzz/f895573e119b5e5b4e35 to your computer and use it in GitHub Desktop.
FFMPEG merge two microphones to file (windows)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@ECHO OFF | |
cd "%~dp0" | |
chcp 65001 > nul | |
SETLOCAL EnableDelayedExpansion | |
REM ============================================== | |
REM ================SET FOLDER HERE=============== | |
SET FFMPEG_FOLDER=D:\Down_Chrome\_part2\ffmpeg-20141009-git-f6777ce-win32-static\ffmpeg-20141009-git-f6777ce-win32-static\bin\bin | |
REM ================END OF OPTIONS================ | |
REM ============================================== | |
GOTO BEGIN_PROG | |
:PROC_NO_DEV_NUM_OPT | |
ECHO ^^ | |
ECHO Warn. One or both device numbers was not specified. | |
ECHO . | |
ECHO Usage: save_2mics.cmd 1 2 | |
ECHO where 1 and 2 is audio device numbers. | |
PING 127.0.0.1 -n 5 > nul | |
EXIT /B 1 | |
:BEGIN_PROG | |
IF NOT EXIST "ffmpeg.exe" ( | |
IF NOT EXIST "!FFMPEG_FOLDER!\ffmpeg.exe" ( | |
ECHO WARN. ffmpeg.exe not found in current directory. | |
ECHO ERROR. ffmpeg not found here^(inside .cmd file^): | |
ECHO "!FFMPEG_FOLDER!" | |
PING 127.0.0.1 -n 5 > nul | |
EXIT /B 1 | |
) | |
) ELSE ( | |
SET FFMPEG_FOLDER=%~dp0 | |
) | |
SET FDLIST=^"!FFMPEG_FOLDER!\ffplay.exe^" -hide_banner -list_devices true -f dshow -i dummy | |
SET bAUDIODEVICES=false | |
SET aCOUNTER=0 | |
SET descDELIMDEF=" " | |
SET descDELIMSEL="(selected) " | |
ECHO List of available dshow audio devices: | |
FOR /F usebackq^ delims^=^"^ tokens^=1-3 %%A IN (`!FDLIST! 2^>^&1`) DO ( | |
:continue | |
REM ECHO %%A__%%B__%%C | |
IF [%%B] == [] ( | |
IF !bAUDIODEVICES! == true ( | |
REM ECHO ::End of adevices. | |
) | |
SET "line=%%A" | |
REM ECHO !line:~-13! | |
IF "!line:~-13!" == "audio devices" ( | |
REM ECHO ::Begin of adevices. | |
SET bAUDIODEVICES=true | |
REM GOTO continue | |
) | |
) ELSE ( | |
IF !bAUDIODEVICES! == true ( | |
SET ADEV!aCOUNTER!=%%B | |
SET descDELIM=%descDELIMDEF% | |
IF "!aCOUNTER!"=="%1" ( | |
SET descDELIM=%descDELIMSEL% | |
) | |
IF "!aCOUNTER!"=="%2" ( | |
SET descDELIM=%descDELIMSEL% | |
) | |
ECHO !aCOUNTER!: !descDELIM:~1,-1! %%B | |
SET /A aCOUNTER=!aCOUNTER!+1 | |
) | |
) | |
) | |
IF NOT DEFINED ADEV%1 ( | |
CALL :PROC_NO_DEV_NUM_OPT | |
EXIT /B 1 | |
) | |
IF NOT DEFINED ADEV%2 ( | |
CALL :PROC_NO_DEV_NUM_OPT | |
EXIT /B 1 | |
) | |
REM IF "%1"=="" ( | |
REM CALL :PROC_NO_DEV_NUM_OPT | |
REM EXIT /B 1 | |
REM ) | |
REM IF "%2"=="" ( | |
REM CALL :PROC_NO_DEV_NUM_OPT | |
REM EXIT /B 1 | |
REM ) | |
IF "%1"=="%2" ( | |
CALL :PROC_NO_DEV_NUM_OPT | |
EXIT /B 1 | |
) | |
SET ADEVs0=!ADEV%1! | |
SET ADEVs1=!ADEV%2! | |
REM ECHO %ADEVs0% !ADEVs0! | |
IF "%3"=="p" ( | |
ECHO = | |
ECHO ======== !ADEVs0! ========== | |
"!FFMPEG_FOLDER!\ffprobe.exe" -hide_banner -f dshow -i audio="!ADEVs0!" -print_format flat" | |
ECHO = | |
ECHO ======== !ADEVs1! ========== | |
"!FFMPEG_FOLDER!\ffprobe.exe" -hide_banner -f dshow -i audio="!ADEVs1!" -print_format flat" | |
) | |
For /f "tokens=1-3 delims=:." %%a in ("%TIME%") do (SET vTime=%%a-%%b-%%c) | |
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (SET vDate=%%c-%%a-%%b) | |
"!FFMPEG_FOLDER!\ffmpeg.exe" -hide_banner -f dshow -i audio="!ADEVs0!" -f dshow -i audio="!ADEVs1!" -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" 2mic_%vDate%_%vTime%.wav |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment