Skip to content
Snippets Groups Projects
Commit ef2fd4a2 authored by Moritz Holtz's avatar Moritz Holtz Committed by Christopher Spinrath
Browse files

Updated screencap Skript.

The Skript now uses a timestamp and a counter as filename.
You can also enter an optional prefix.

The other Screencap skripts where been deleted, so we only have one, which works.
parent eafcf61e
No related branches found
No related tags found
No related merge requests found
#!/bin/bash
# ffmpeg recorder script for audio and video
# Source: http://filmsbykris.com/wordpress/screen-capturing-with-ffmpeg/
cd $HOME/Videos/tutorials/original
SavePath=$(zenity --file-selection --save --confirm-overwrite)
echo "Saving video to $szSavePath"
INFO=$(xwininfo -frame)
WIN_GEO=$(echo "$INFO"|grep -e "Height:" -e "Width:"|cut -d\: -f2|tr "\n" " "|awk '{print $1 "x" $2}')
WIN_POS=$(echo "$INFO"|grep "upper-left"|head -n 2|cut -d\: -f2|tr "\n" " "|awk '{print $1 "," $2}')
ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -s $WIN_GEO -r 15 -i :0.0+$WIN_POS -r 15 -acodec pcm_s16le -sameq "$SavePath.avi"
echo "$WIN_GEO -i :0.0+$WIN_POS -acodec"
echo "$WIN_POS"
......@@ -3,23 +3,38 @@
# Dieses Skript verwendet avconv oder ffmpeg um den Bildschirm aufzunehmen.
# Wenn AUDIO=1 gesetzt ist wird auch der Ton aufgenommen.
# In die Variable $DEVICE wird der Bezeichner des Anschlusse eingetragen, von dem aufgenommen werden soll (siehe xrandr).
# Erster und einziger, optionaler, Parameter ist die Datei, in die gespeichert wird. Wenn die nicht angegeben wird wird nach cap.avi gespeichert.
# Erster und einziger, optionaler, Parameter ist ein Präfix für die Datei, in die aufgenommen wird.
# Der Dateiname lautet: $prefix-YYYY-MM-DD-HH-MM-SS-nummer.mp4
# Teilweise gibt es Probleme mit der Syncronität Bild<->Ton, daher dringen auf den Präsentationslaptops ausprobieren.
DEVICE="VGA"
AUDIO=0
AUDIO=1
FPS=15
info=$(xrandr | grep $DEVICE)
res=$(echo $info | grep -Eo '[0-9]+x[0-9]+')
if [ -z "$info" ] || (echo $info | grep disconnected)
then
echo "Device $DEVICE not connected or not existent - check xrandr"
exit 1
fi
res="$(echo $info | grep -Eo '[0-9]+x[0-9]+')"
pos=$(echo $info | grep -Eo '\+[0-9]+\+[0-9]+')
if [ "$1" == "" ]
then
file=cap.avi
prefix=""
else
file=$1
prefix=$1-
fi
counter=0
file=${prefix}$(date +%Y-%m-%d-%H-%M-%S)-$counter.mp4
while [ -e $file ]
do
((counter=counter+1))
file=${prefix}$(date +%Y-%m-%d-%H-%M-%S)-$counter.mp4
done
if which avconv
then
prog=avconv
......@@ -33,9 +48,9 @@ fi
if [ $AUDIO -eq 1 ]
then
audiocmd="-f alsa -ac 2 -i hw:0,0 -r 25 -c:a pcm_s16le"
audiocmd="-f alsa -ac 2 -i hw:0,0 -c:a libfaac"
else
audiocmd="-an"
fi
$prog -f x11grab -s $res -r 25 -i :0.0$pos $audiocmd -c:v libx264 -crf 1 -preset:v fast $file
$prog -f x11grab -s $res -r $FPS -i :0.0$pos $audiocmd -c:v libx264 -r $FPS -preset:v ultrafast $file
#!/bin/bash
# Dieses Skript verwendet recordmydesktop um den Bildschirm + Ton aufzunehmen.
# In die Variable $DEVICE wird der Bezeichner des Anschlusse eingetragen, von dem aufgenommen werden soll (siehe xrandr).
# Wenn ON_THE_FLY_ENCODING=1 ist wird das Video direkt bei der Aufnahme encodiert. Dies frist einiges an Rechenleistung, falls die Aufnahme aber abbricht ist alles bis zum Abbruch vorhanden und das fertige Video steht direkt nach der Beendigung der Aufnahme zur Verfügung. Sonst dauert es am Ende noch einige Zeit.
# Erster und einziger, optionaler, Parameter ist die Datei, in die gespeichert wird. Wenn die nicht angegeben wird wird nach out.ogv gespeichert.
# Teilweise gibt es Probleme mit der Syncronität Bild<->Ton, daher dringen auf den Präsentationslaptops ausprobieren.
DEVICE="VGA"
ON_THE_FLY_ENCODING=1
FPS="15"
info=$(xrandr | grep $DEVICE | grep -Eo '[0-9]+x[0-9]+\+[0-9]*\+[0-9]*' | tr x+ " ")
x=$(echo $info | awk '{print $3}')
y=$(echo $info | awk '{print $4}')
width=$(echo $info | awk '{print $1}')
height=$(echo $info | awk '{print $2}')
if ! which recordmydesktop
then
echo "recordmydesktop nicht gefunden!"
exit
fi
if [ $x -gt 0 ]
then
cmd="$cmd -x $x"
fi
if [ $y -gt 0 ]
then
cmd="$cmd -y $y"
fi
if [ $ON_THE_FLY_ENCODING -eq 1 ]
then
cmd="$cmd --on-the-fly-encoding"
fi
recordmydesktop $cmd --fps $FPS --width $width --height $height $1
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment