others/capturemedia.sh

53 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
## capture desktop content ##
# capturemedia.sh by @root_informatica.
# menu.
XMENU=xmenu.sh
# timestamp.
DATE=`date +%m-%d-%Y_%H:%M:%S`
# webcam in a frame.
WEBCAM="ffplay -f video4linux2 -i /dev/video0 -video_size 420x340 -fflags nobuffer"
# record mic.
MIC="arecord capture-a_$DAT.mp3"
# record desktop (smartphone compatibility).
DESKTOP="ffmpeg -f x11grab -s $(sed 's/,/x/' < /sys/class/graphics/fb0/virtual_size) -r 12 -i :1.0+0,0 -vcodec libx264 capture-v_$DATE.mp4"
# record desktop with audio from the michrophone.
DESKTOP_MIC="ffmpeg -video_size $(sed 's/,/x/' < /sys/class/graphics/fb0/virtual_size) -framerate 25 -f x11grab -i :1 -f alsa -ac 2 -i hw:0 capture-av.$DATE.mp4"
# add audio to an already recorded video.
add_audio() {
# music dir.
mdir="$HOME/Mùsica"
# video target.
video=$(find $HOME -maxdepth 1 -type f | grep ".mp4" | $XMENU)
# audio target
audio=$(find $MDIR -type f | $XMENU)
# mix command.
ffmpeg -i $video -stream_loop -1 -i $audio -c copy -shortest -map 0:v:0 -map 1:a:0 -vcodec libx264 -vf format=yuv420p -acodec aac -ab 128k -ac 2 -ar 44100 capture-av_$DATE.mp4
}
OPT=$(echo -e "addaudio\nmic\ndesktop\ndesktop-mic\nwebcam\nstop" | $XMENU)
case $OPT in
addaudio)
add_audio
;;
mic)
$MIC & echo $! > /tmp/capturemedia.pid
;;
desktop)
$DESKTOP & echo $! > /tmp/capturemedia.pid
;;
desktop-mic)
$DESKTOP_MIC & echo $! > /tmp/capturemedia.pid
;;
webcam)
$WEBCAM
;;
stop)
# kill'em all.
kill $(cat /tmp/capturemedia.pid)
;;
esac