Aktionen

Code Snippets

Aus exmediawiki

Version vom 12. April 2018, 19:35 Uhr von C.heck (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „=numerate files in folder== Dieses Skript erzeugt eine durchlaufende Numerierung aller in einem Verzeichnis befindlichen JPEG Dateien. Die Originaldateien wer…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

numerate files in folder=

Dieses Skript erzeugt eine durchlaufende Numerierung aller in einem Verzeichnis befindlichen JPEG Dateien. Die Originaldateien werden beibehalten.


Skript

Das Skript kann in einem beliebigen Editor wie etwa TextEdit, Gedit oder vim eingegeben und abgespeichert (etwa als jpeg_numerator.sh) werden.

#!/bin/bash
x=1; 
for i in *jpg; 
do counter=$(printf %03d $x); 
ln "$i" ./"$counter".jpg;
x=$(($x+1)); 
done
  • In der ersten Zeile wird durch das sog. shebang- Zeichen #! festgelegt, mit welcher Interpretationsumgebung das Skript ausgeführt werden soll. In unserem Fall handelt es sich um die sog. Bash Shell (Bourne Again Shell).
  • In der zweiten Zeile wird der variable x der Wert 1 zugewiesen. Hier beginnt unser Zähler
  • In der dritten Zeile wird eine Schleife begonnen, die entsprechend der Anzahl der vorhandenen JPEG Bilder loopt
  • In der vierten Zeile wird der Variable counter ein dreistelliger String zugewiesen.
  • In der fünften Zeile wird mit dem Befehl ln die durchnumerierte Kopie der jeweiligen Datei erzeugt.
  • Die sechste Zeile schliesst mit done die in der dritten Zeile definierte for- Schleife

resize all images in one folder

Mit ImageMagick kann man sehr schnell die Größe von Bildern in einem Ordner ändern. Das folgende Beispiel lässt das Ausgangsmaterial unverändert und stellt allen Dateinamen das Präfix edit- voran.

$ for file in *.jpg; do convert $file -resize 800x600 edit-$file; done

Webcambilder mit ffmpeg erzeugen

Standardbefehl um ein Video aus /dev/video0 zu erzeugen:

ffmpeg -f video4linux2 -s 960x720 -r 25 -i /dev/video0 -vcodec copy test.avi

Befehl um aus einem Video Bilder zu erzeugen:

ffmpeg -i test.avi -r 1 -s WxH -f image2 test-%03d.jpeg

Kombinierter Befehl um direkt aus /dev/video0 Bilder zu schießen (“-r 0.1″ entspricht alle zehn Sekunden ein Bild):

ffmpeg -f video4linux2 -s 960x720 -r 1 -i /dev/video0 -f image2 -r 0.1 test-%03d.jpeg

Oder wenn man TGA als Bildformat haben möchte:

ffmpeg -f video4linux2 -s 960x720 -r 1 -i /dev/video0 -f image2 -r 0.1 test-%03d.tga

Mit FFmpeg lassen sich Fotos oder Videos von der Webcam aufnehmen. Folgendes Kommando nimmt z.B. ein Foto auf und speichert es unter image.jpg. Voraussetzung ist, dass die Kamera über /dev/video0 angesprochen werden kann:

ffmpeg -f video4linux2 -s 640x480 -r 1 -i /dev/video0 -vframes 1 -f image2 image.jpg


schleifen etc. als cmd-line

   if [ -f unixfile ]
   then
     rm unixfile
   fi

This snippet of code will remove (delete) the file named unixfile if it exists and is a regular file. The -f enclosed within brackets performs this test. These two UNIX commands, the -f test and the remove statement, can be combined and compacted into a single line of code by using the && shell construct:

   [ -f unixfile ] && rm unixfile

This statement is read, if command1 is true (has an exit status of zero) then perform command2.

The || construct will do the opposite:

   command1 || command 2

If the exit status of command1 is false (non-zero), command2 will be executed.

UNIX pipelines may be used on either side of && or ||, and both constructs can be used on the same line to simulate the logic of an if-else statement. Consider the following lines of code:

   if [ -f unixfile ]
   then
     rm unixfile
   else
     print "unixfile was not found, or is not a regular file"
   fi

Using && and || together, this block of code can be reduced to:

   [ -f unixfile ] && rm unixfile || print "unixfile was not found, or is not a regular file"

Finally, multiple commands can be executed based on the result of command1 by incorporating braces and semi-colons:

   command1 && { command2 ; command3 ; command4 ; }

If the exit status of command1 is true (zero), commands 2, 3, and 4 will be performed.




screencasts

$ cvlc screen:// --screen-fps 25 --nooverlay --sout "#transcode{vcodec=h264,vb=2048,scale=0.5,acodec=mp3,ab=128,channels=2}:duplicate{dst=std{access=file,mux=mp4,dst=output.flv}}"
$ ffmpeg -f x11grab -r 25 -s 1424x820 -i :0.0+7,68 -vcodec huffyuv -sameq screencast.avi

siehe auch: http://wiki.ubuntuusers.de/Screencasts?highlight=Pw%20Tbaustell%20Zscreen