Skip to content
Snippets Groups Projects
Select Git revision
  • f7d41fae66df8d9f1546df008606da22de823ff7
  • master default
  • lip-21w
3 results

screencap-ffmpeg.sh

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    screencap-ffmpeg.sh 1.05 KiB
    #!/bin/bash
    
    # 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.
    # Teilweise gibt es Probleme mit der Syncronität Bild<->Ton, daher dringen auf den Präsentationslaptops ausprobieren.
    
    DEVICE="VGA"
    AUDIO=0
    
    info=$(xrandr | grep $DEVICE)
    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
    	else
    	file=$1
    fi
    
    if which avconv
    	then
    	prog=avconv
    elif which ffmpeg
    	then
    	prog=ffmpeg
    else
    	echo "Weder avconv, noch ffmpeg gefunden!"
    	exit
    fi
    
    if [ $AUDIO -eq 1 ]
    	then
    	audiocmd="-f alsa -ac 2 -i hw:0,0 -r 25 -c:a pcm_s16le"
    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