betlog

recordDesktop-START_embed-nonSuspendedSources.sh

Oct 30th, 2019
386
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.43 KB | None | 0 0
  1. #!/bin/bash
  2. # BETLOG - 2019-10-24--19-36-55
  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. # ------- combinedSinks - all NON-SUSPENDED
  23. pactl unload-module module-null-sink 2> /dev/null
  24. pactl load-module module-null-sink sink_name=$MODULENULLSINKNAME
  25. while read -r line; do
  26.     data=$(echo $line|sed 's/\.monitor//'|awk -F'.' '{print $1 " " $NF}')
  27.     type=$(echo $data|awk '{print $1}'|sed 's/alsa_//')
  28.     nameLong=$(echo $data|awk '{print $2}')
  29. #     nameShort=$(echo $nameLong|sed 's/[^[:alnum:]]//g')    
  30.     msg+="$type: $nameLong\\n"    
  31.     pactl load-module module-loopback sink=$MODULENULLSINKNAME source=$line
  32. done < <(pactl list sources short|grep -v -e SUSPENDED -e $MODULENULLSINKNAME|awk '{print $2}')
  33. # ------- embed combinedSinks audio
  34. ffmpeg \
  35. -hwaccel cuvid \
  36. -f pulse \
  37. -i $MODULENULLSINKNAME.monitor \
  38. -f x11grab \
  39. -s $resolution \
  40. -i :0.0 \
  41. -r $FRAMERATE \
  42. -vcodec $VIDEOCODEC \
  43. -b:v 0 \
  44. "$OUTPUTPATH/$(date +%Y-%m-%d--%H-%M-%S.%3N)${title}.mkv" &
  45. # ------- generic
  46. if [[ $! ]];then
  47.     [[ -L $0 ]] && name=$(basename $(readlink $0)) || name=$(basename $0)
  48.     kdialog --title "${name%%_*}" --passivepopup "$(echo ${name##*START_}|sed 's/.sh//')\\n$resolution@$FRAMERATE$msg" 3
  49. else
  50.     paplay --volume=32768 --device=${AUDIOPREF_OUT/.monitor/} "/home/user/music/audio/_all-alarms-notifications-ringtones/Wookie.mp3" 1> /dev/null
  51.     kdialog --title "Recording Desktop - ERROR" --passivepopup "Process not found" 3
  52. # ------- combinedSinks    
  53.     pactl unload-module module-loopback 2> /dev/null
  54.     pactl unload-module module-null-sink 2> /dev/null
  55. fi
Advertisement
Add Comment
Please, Sign In to add comment