Schlagwort-Archive: Linux

BitNotice #63 – Multimedia unter Linux – Videoschnitt mit AVIDemux & Openshot

BitNotice #63 - Multimedia unter Linux - Videoschnitt mit AVIDemux & Openshot

(11 MB) 00:06:56

2014-10-10 14:36 🛈

Nachdem wir uns bisher eher mit stillen Bildern beschäftigt haben kommt nun Bewegung ins Spiel. AVIDemux eignet sich um Szenen aus Videos heraus zu schneiden, Videos zu vereinen oder kleinere Korrekturen bzw. Umwandlungen vorzunehmen. OpenShot arbeitet mit mehreren Spuren und bietet auch komplexe Filter und Übergänge, ist jedoch auch für Anfänger verständlich.

BitNotice #61 – Multimedia unter Linux – 3D-Animation mit Blender

BitNotice #61 - Multimedia unter Linux - 3D-Animation mit Blender

(27 MB) 00:17:08

2014-10-03 12:45 🛈

Blender: http://www.blender.org/

Tutorial „Pool balls“: https://www.youtube.com/watch?v=csro_0eV0BQ

Big Buck Bunny: http://www.bigbuckbunny.org/
Sintel: http://sintel.org/
Tears of Steel: http://www.tearsofsteel.org/

BitNotice #59 – Multimedia unter Linux – Fototools

BitNotice #59 - Multimedia unter Linux – Fototools

(22 MB) 00:14:30

2014-09-19 20:21 🛈

BitNotice #57 – Multimedia unter Linux – Fotoverwaltung

BitNotice #57 - Multimedia unter Linux - Fotoverwaltung

(63 MB) 00:15:19

2014-09-12 15:30 🛈

Fotoverwaltung unter Linux mit DigiKam (http://digikam.org/) sowei ein kurzer Blick auf F-Spot und Shotwell

BitNotice #55 – Multimedia unter Linux – Inkscape

BitNotice #55 - Multimedia unter Linux - Inkscape

(40 MB) 00:10:51

2014-09-02 15:50 🛈

Zuletzt haben wir bereits gesehen, dass man mit GIMP Fotos, so genannte Pixelgrafiken, wunderbar bearbeiten kann. Für Logos & Co bieten sich eher Vektorgrafiken an – hierbei wird nicht ein Bild sondern die Beschreibung der Formen gespeichert. Der große Vorteil: Man kann quasi unendlich Zoomen und die Formen später getrennt verändern. Das passende Werkzeug unter Linux nennt sich Inkscape.

CAcert mit Chrome/Chromium unter Linux

CAcert ist an sich ja eine tolle Sache: Kostenfreie SSL-Zertifikate ermöglichen es auch kleinen Projekten Verschlüsselung zu nutzen ohne mit selbstsignierten Gerümpel anzufangen. Leider ist diese Zertifizierungsstelle nur bei wenigen Browsern vorinstalliert.

Unter Windows mit IE oder auf nahezu allen PC-Systemen per Firefox ist die Installation üblicherweise mit einem einfachen Klick auf der Webseite der CA erledigt – Chrome/Chromium unter Linux nutzen jedoch offenbar eine eigene Zertifikatsdatenbank.

Da die Warnungen und das manuelle prüfen auf Dauer natürlich nervig sind verweise ich mal einfach auf den offiziellen Installationsguide – hier ergänzt um einen kurzen Identitätscheck (Stand August 2014, gültig bis März 2033).

 

cd /tmp

wget -O cacert-root.crt "http://www.cacert.org/certs/root.crt"
wget -O cacert-class3.crt "http://www.cacert.org/certs/class3.crt"

openssl x509 -in cacert-root.crt -fingerprint -sha1 -noout
#Hier muss 13:5C:EC:36:F4:9C:B8:E9:3B:1A:B2:70:CD:80:88:46:76:CE:8F:33 erscheinen
openssl x509 -in cacert-class3.crt -fingerprint -sha1 -noout
#Hier muss AD:7C:3F:64:FC:44:39:FE:F4:E9:0B:E8:F4:7C:6C:FA:8A:AD:FD:CE erscheinen

certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "CAcert.org" -i cacert-root.crt 
certutil -d sql:$HOME/.pki/nssdb -A -t TC -n "CAcert.org Class 3" -i cacert-class3.crt

Nach der Installation erkennt Chrome/Chromium die neue CA sofort, ein Neustart von System oder Browser ist nicht notwendig.

BitNotice #54 – Multimedia unter Linux – GIMP

BitNotice #54 - Multimedia unter Linux - GIMP

(19 MB) 00:10:07

2014-08-29 07:30 🛈

Mit dem GNU Image Manipulation Program (GIMP) hat man ein mächtiges Werkzeug um Pixelgrafiken, also hauptsächlich Fotos, zu bearbeiten. Selbst professionelle Features, welche sonst für viel Geld eingekauft werden müssen, sind vielfach in dieser freien Software zu finden. Profis werden in der aktuellen Version ggf. 16Bit-Farbtiefe oder natives CYMK vermissen, beides ist jedoch bereits in Arbeit.

BitBastelei #111 – OwnCloud – Installation für Linux & Android

BitBastelei #111 - OwnCloud - Installation für Linux & Android

(24 MB) 00:26:06

2014-08-24 10:00 🛈

Die Cloud ist praktisch – alle Daten auf allen Geräten immer greifbar – doch möchte man „sein Leben“ wirklich Firmen anvertrauen, die ihr Geld mit dem Verkauf von Daten machen? Mit Owncloud könnt ihr das Ruder selbst in die Hand nehmen: Dateien, Kontakte, Kalender u.v.m über den eigenen Server überall synchron.

Gezeigt wird:
00:12 Einführung
01:25 Installation auf einem Server
05:28 Die Owncloud WebApp
10:19 [Linux] Dateizugriff Part 1: WebDAV (online-Zugriff)
11:08 [Linux] Termine mit Thunderbird/Lightning
12:48 [Linux] Kontakte mit Thunderbird/Sogo Connector (http://www.sogo.nu/downloads/frontends.html)
15:41 [Linux] Dateizugriff Part 2: Miral/OwnCloud-Client (syncronisation)
18:48 [Android] Dateien mit OwnCloud (https://play.google.com/store/apps/details?id=com.owncloud.android – 0,79€ + https://play.google.com/store/apps/details?id=com.owncloud.android.workaround.accounts)
20:18 [Android] Kalender mit CalDAV-Sync (https://play.google.com/store/apps/details?id=org.dmfs.caldav.lib – 2,59€ + https://play.google.com/store/apps/details?id=org.dmfs.jb.workaround.caldavsync)
22:27 [Android] Kontakte mit CardDAV-Sync (https://play.google.com/store/apps/details?id=org.dmfs.carddav.sync )
24:06 Audblick & Fazit

Weitere Links:
Owncloud: http://owncloud.org/
Aufgabenverwaltung: https://play.google.com/store/apps/details?id=org.dmfs.tasks

Poor mans PC-Interface – Multimeter per Webcam auslesen

Improvisieren? Kann ich. Derzeit teste ich mit einem Gerät herum, welches sich in regelmäßigen Abständen einschaltet – interessant für mich wäre es nun diese Zyklen genauer zu kennen. Zwar habe ich einige Energiekostenmessgeräte, damit lässt sich jedoch nur Min/Max bzw. der Durchschnitt errechnen, nicht jedoch wie oft das Gerät nun tatsächlich läuft. Hier würde ein Multimeter mit PC-Anbindung helfen, leider käme hierzu nur mein UniT in Frage, welches im Dauerbetrieb jedoch recht schnell mit leerer Batterie seinen Dienst einstellen würde. Meine „großen“ HPs besitzen zwar eine GPIB-Schnittstelle, den passenden PC-Adapter habe ich allerdings noch nicht fertig.

Bleibt nur ein anderer Ansatz: Optische Erkennung. Als Multimeter hält mein Rohde&Schwarz/Keithley her – durch die LEDs ist dessen Anzeige am einfachsten lesbar. Direkt davor sitzt nun eine Webcam, welche die Anzeige im Auge behält. Über die Software „motion“ stellt mein Linux-Server einen MJPEG-Stream bereit – ich bin diesen Weg gegangen, da ein ständiges Reinitialisieren der Kamera für einzelne Screenshots gerne zu Hängern führt.

Bild: https://adlerweb.info/blog/wp-content/uploads/2014/08/cam1.jpg

Ein kleiner PHP-Daemon fragt nun regelmäßig das letzte Bild ab, hierzu wird ein (modifizierter) Code des motion-Projektes verwendet:

$camurl='http://127.0.0.1:8081/';
$boundary="\n--";

$f = fopen($camurl,"r") ;

   if(!$f)
   {
        //**** cannot open
        echo "error";
   }
    else
   {
        //**** URL OK
         $r='';
         unset($p);
         while (substr_count($r,"Content-Length") != 2) $r.=fread($f,512);

         $start = strpos($r,chr(0xFF));
         $end   = strpos($r,$boundary,$start)-1;
         $frame = substr("$r",$start,$end - $start);

         //In $frame sind nun die rohen JPEG-Daten - diese können ausgegeben werden, gespeichert werden oder per imagecreatefromstring (gd) in PHP weiter verarbeitet werden
   }

Weiterhin wird das Bild passend beschnitten, gedreht und in ein invertiertes Schwarz-Weiß-Bild umgewandelt:

$src = imagecreatefromstring($frame);
$dst = imagecreatetruecolor(173,75);

imagecopy($dst, $src, 0, 0, 225, 66, 173, 75);
$dst = imagerotate($dst, 10, 0);
imagefilter($dst, IMG_FILTER_NEGATE);
imagefilter($dst, IMG_FILTER_GRAYSCALE);
imagefilter($dst, IMG_FILTER_CONTRAST, -100);

Im Anschluss wird über eine Reihe von „imagecolorat“-Abfragen für jede der 7-Segment-Stellen ein Array generiert – jedes Segment ist entweder an (1) oder aus (0). Zur besseren Erkennung wird jedes Segment an mehreren Stellen abgefragt und der Durchschnitt mit einem Schwellwert bewertet, so ist das System unempfindlicher gegen Rauschen.

Bild: https://adlerweb.info/blog/wp-content/uploads/2014/08/7SEG-208×300.png
(Im Array ist der Index entsprechend 0-6, nicht 1-7)

Am Ende steht ein Mapping, welches die erkannte Anzeige in einen Integer umwandelt

function seven2int($p) {
    $map[1][1][1][0][1][1][1] = 0;
    $map[0][1][0][0][1][0][0] = 1;
    $map[0][0][1][0][0][1][0] = 1;
    $map[1][0][1][1][1][0][1] = 2;
    $map[1][0][1][1][0][1][1] = 3;
    $map[0][1][1][1][0][1][0] = 4;
    $map[1][1][0][1][0][1][1] = 5;
    $map[1][1][0][1][1][1][1] = 6;
    $map[0][1][0][1][1][1][1] = 6;
    $map[1][0][1][0][0][1][0] = 7;
    $map[1][1][1][1][1][1][1] = 8;
    $map[1][1][1][1][0][1][0] = 9;
    $map[1][1][1][1][0][1][1] = 9;

    if(isset($map[$p[0]][$p[1]][$p[2]][$p[3]][$p[4]][$p[5]][$p[6]])) {
        return $map[$p[0]][$p[1]][$p[2]][$p[3]][$p[4]][$p[5]][$p[6]];
    }else{
        return false;
    }
}

Die (passend multiplizierten) Werte ergeben den Messwert. Die Erkennung ist zwar nicht 100%ig, jedoch bei der verfügbaren Auflösung wesentlich zuverlässiger als ein klassischer OCR und ausreichend um ein paar Kurven zu zeichnen. Derzeit werden etwa 80-90% der Captures erkannt. Die meisten Fehler kommen durch ungünstiges Timing – wenn die Kamera eine Aufnahme macht während die LED-Anzeige gerade aktualisiert kommt es zu halben Zahlen.

Bild: https://adlerweb.info/blog/wp-content/uploads/2014/08/Unbenannt.png

Arch Linux: Only console users are allowed to run the X server

Üblicherweise nutze ich an meinem Haupt-PC ein Multihead-Setup, also mehrere Monitore. Was zum Arbeiten praktisch ist bringt Spiele leider gerne aus dem Tritt. Um dem aus dem Weg zu gehen habe ich bisher über startx einen zweiten X-Server gestartet – direkt aus der GUI, somit war auch Pulseaudio & Co immer direkt nutzbar. Seit einem der letzten Updates, vermutlich die neue Rootless-Funktion von xorg 1.16, erscheint nur noch die Meldung „Only console users are allowed to run the X server“.

In einem Post auf Github wird empfohlen eine Datei /etc/X11/Xwrapper.config mit dem Text „allowed_users=anybody“ zu erzeugen. Generell ein Fortschritt, nun bricht jedoch beim Start der propritäre NVidia-Treiber wie folgt zusammen:

(EE) NVIDIA(GPU-0): EVO Push buffer channel allocation failed
(EE) NVIDIA(GPU-0): Failed to allocate EVO core DMA push buffer
(EE) NVIDIA(0): Failing initialization of X screen 0

Leider konnte ich den genauen Auslöser nicht finden – die Rechte sinds nicht, setuid/setgid oder start als root zeigt keine Änderung. Auch ein Wechsel auf die freien Nouveau-Treiber zeigt keine Änderung, hier kann in der zweiten Sitzung kein DRI inizialisiert werden. Glücklicherweise hat der freie Treiber deutlich weniger Rendering-Bugs – nicht nur, dass Chromium endlich wieder nutzbar ist – auch Spiele laufen nun im Multi-Monitor-Modus. Zwar erscheint das Bild immer auf den linken Monitor, aber mit einem VGA-Umschalter als Hardware-Workarround kann ich mir da behelfen.