-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpick_mic.sh
More file actions
executable file
·17 lines (17 loc) · 966 Bytes
/
Copy pathpick_mic.sh
File metadata and controls
executable file
·17 lines (17 loc) · 966 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/zsh
# 1) имя дефолтного входного устройства из system_profiler
DEF=$(system_profiler SPAudioDataType 2>/dev/null | awk '
/^ *[^ ].*:$/{name=$0; sub(/:$/,"",name); gsub(/^ +/,"",name)}
/Default Input Device: Yes/{print name; exit}')
# 2) список avfoundation: idx<TAB>name
LIST=$(ffmpeg -f avfoundation -list_devices true -i "" 2>&1 | perl -ne '
if(/AVFoundation audio devices/){$a=1;next}
if($a && /\]\s+\[(\d+)\]\s+(.+?)\s*$/){print "$1\t$2\n"}')
# 3) индекс дефолтного по имени
if [ -n "$DEF" ]; then
IDX=$(echo "$LIST" | grep -iF "$DEF" | grep -viE 'zoom|blackhole|aggregate|virtual|loopback' | head -1 | cut -f1)
[ -n "$IDX" ] && { echo "$IDX"; exit 0; }
fi
# 4) fallback: реальный мик, не виртуальный
echo "$LIST" | grep -viE 'zoom|blackhole|aggregate|virtual|loopback' | \
grep -iE 'микрофон|microphone|macbook|airpods|built' | head -1 | cut -f1