From ef2fd4a27015b46532956e431f6c273fc161fa19 Mon Sep 17 00:00:00 2001
From: Moritz Holtz <moritz.holtz@rwth-aachen.de>
Date: Tue, 3 Feb 2015 21:08:59 +0100
Subject: [PATCH] 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.
---
 screencap/ffmpeg_recorder.sh      | 17 --------------
 screencap/screencap-ffmpeg.sh     | 29 +++++++++++++++++------
 screencap/screencap-recmydeskt.sh | 39 -------------------------------
 3 files changed, 22 insertions(+), 63 deletions(-)
 delete mode 100755 screencap/ffmpeg_recorder.sh
 delete mode 100755 screencap/screencap-recmydeskt.sh

diff --git a/screencap/ffmpeg_recorder.sh b/screencap/ffmpeg_recorder.sh
deleted file mode 100755
index fd98f8b..0000000
--- a/screencap/ffmpeg_recorder.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/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"
diff --git a/screencap/screencap-ffmpeg.sh b/screencap/screencap-ffmpeg.sh
index 72ec43d..9de42c4 100755
--- a/screencap/screencap-ffmpeg.sh
+++ b/screencap/screencap-ffmpeg.sh
@@ -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
diff --git a/screencap/screencap-recmydeskt.sh b/screencap/screencap-recmydeskt.sh
deleted file mode 100755
index e6861d8..0000000
--- a/screencap/screencap-recmydeskt.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/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
-
-- 
GitLab