53 lines
1.5 KiB
Bash
Executable File
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
|