Advertisement
betlog

recordDesktop-START_embed-specifiedSource_wav-otherIndividualSources.sh

Oct 30th, 2019
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.45 KB | None | 0 0
  1. #!/bin/bash
  2. # betlog - 2019-10-28--01-42-37
  3. #
  4. # ------- generic
  5. # /home/user/documents/scripts/audio/listAudioSources.sh
  6. AUDIOPREF_OUT="alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1.monitor"
  7. AUDIOPREF_MIC="alsa_input.pci-0000_00_1b.0.analog-stereo"
  8. OUTPUTPATH="/home/user/.steamdata/video"
  9. MODULENULLSINKNAME="combinedSinks"
  10. FRAMERATE=60.00 #59.94006   #30 #29.970030
  11. VIDEOCODEC=h264_nvenc
  12. # ========
  13. if [[ $(pgrep ffmpeg) ]];then
  14.     paplay --volume=32768 --device=${AUDIOPREF_OUT/.monitor/} "/home/user/music/audio/_all-alarms-notifications-ringtones/warzone2100-beacon.ogg" 1> /dev/null    
  15.     kdialog --title "Recording Desktop" --passivepopup "ALREADY RECORDING" 3
  16.     exit
  17. fi
  18. paplay --volume=32768 --device=${AUDIOPREF_OUT/.monitor/} "/home/user/music/audio/_all-alarms-notifications-ringtones/bell.oga" 1> /dev/null
  19. title="_$(xdotool getwindowname $(xdotool getactivewindow 2> /dev/null) 2> /dev/null|sed 's/[^[:alnum:]]//g')"
  20. resolution=$(xrandr | grep -m1 "*" | awk '{print $1}')
  21. msg="\\n"
  22. # ------- individual wav - all NON-SUSPENDED except AUDIOPREF_OUT
  23. while read -r line; do
  24.     data=$(echo $line|sed 's/\.monitor//'|awk -F'.' '{print $1 " " $NF}')
  25.     type=$(echo $data|awk '{print $1}'|sed 's/alsa_//')
  26.     nameLong=$(echo $data|awk '{print $2}')
  27.     nameShort=$(echo $nameLong|sed 's/[^[:alnum:]]//g')    
  28.     msg+="$type: $nameLong\\n"    
  29.     if [[ $line != $AUDIOPREF_OUT ]];then
  30.         ffmpeg -f pulse -i "${line}" "$OUTPUTPATH/$(date +%Y-%m-%d--%H-%M-%S.%3N)${title}_${nameShort}.wav" &    
  31.     fi
  32. done < <(pactl list sources short|grep -v SUSPENDED|awk '{print $2}')
  33. # ------- embed specified audio OUTPUT
  34. data=$(echo $AUDIOPREF_OUT|sed 's/\.monitor//'|awk -F'.' '{print $1 " " $NF}')
  35. type=$(echo $data|awk '{print $1}'|sed 's/alsa_//')
  36. nameLong=$(echo $data|awk '{print $2}')
  37. msg+="$type: $nameLong\\n"    
  38. ffmpeg \
  39. -hwaccel cuvid \
  40. -f pulse \
  41. -i $AUDIOPREF_OUT \
  42. -f x11grab \
  43. -s $resolution \
  44. -i :0.0 \
  45. -r $FRAMERATE \
  46. -vcodec $VIDEOCODEC \
  47. -b:v 0 \
  48. "$OUTPUTPATH/$(date +%Y-%m-%d--%H-%M-%S.%3N)${title}.mkv" &
  49. # ------- generic
  50. if [[ $! ]];then
  51.     [[ -L $0 ]] && name=$(basename $(readlink $0)) || name=$(basename $0)
  52.     kdialog --title "${name%%_*}" --passivepopup "$(echo ${name##*START_}|sed 's/.sh//')\\n$resolution@$FRAMERATE$msg" 3
  53. else
  54.     paplay --volume=32768 --device=${AUDIOPREF_OUT/.monitor/} "/home/user/music/audio/_all-alarms-notifications-ringtones/Wookie.mp3" 1> /dev/null
  55.     kdialog --title "Recording Desktop - ERROR" --passivepopup "Process not found" 3
  56. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement