AVI Dateien unter C# schreiben

Wenn man eine AVI Datei unter C# schreiben möchte, wird man feststellen das es zwar viele Wege gibt, aber keiner dieser Wege führt nach Rom. Jede vorgeschlagende Variante hat meist Abhängigkeiten, welche man nicht haben möchte. So wird bei vielen Varianten FFMPEG als DLL genutzt, bei anderen werden Windows DLLs genutzt, was dazu führt das der Quellcode nicht unabhängig von der Plattform ist. Abhilfe schafft hier die freie unter der MIT-Lizenz lizenzierte Bibliothek SharpAvi. Um eine AVI-Datei zu schreiben sind mit Hilfe der Bibliothek nur einige Zeilen Quelltext nötig:

//AviWriter anlegen
AviWriter writer=new AviWriter("test.avi");
writer.FramesPerSecond=25;

//Videostream anlegen
IAviVideoStream stream=writer.AddVideoStream();
stream.Width=1920;
stream.Height=1080;
stream.Codec=KnownFourCCs.Codecs.Uncompressed;
stream.BitsPerPixel=BitsPerPixel.Bpp24;

//Encode für Kompression anlegen
//Ohne Encoder wird die Datei unkomprimiert gepsiechert (stream.WriteFrame)
var encoder=new MotionJpegVideoEncoderWpf(stream.Width, stream.Height, 100);
var encodingStream=new EncodingVideoStreamWrapper(stream, encoder);

//Schwarzen Frame anlegen
byte[] frameData=new byte[stream.Width*stream.Height*3];

//Frames schreiben
for(int i=0;i<25; i++)
{
    encodingStream.WriteFrame(frameData, 0);
}

//Writer schließen
writer.Close();

In diesem Beispiel wird eine AVI Datei mit 25 schwarzen Frames erzeugt, was bei der angegebenen Framerate exakt einer Sekunde entspricht. Zu finden ist SharpAvi auf der offiziellen Webseite. Alternativ kann der Spiegel auf GitHub genutzt werden.

REST-API testen

Wer eine Rest-API testen möchte, der kann dies natürlich im Browser tun. Einfacher funktioniert das ganze mittels RESTClient. Dabei handelt es sich eine freie Anwendung um die REST-API aufzurufen und anschließend das Ergebnis auszuwerten.

RESTClient

RESTClient

Dabei hat man volle Kontrolle über die gesendeten Parameter, die HTTP Methode, den Header und einige andere Einstellungen. Nach einem ausgeführten Request können die Ergebnisse der Anfrage eingesehen werden. RESTClient ist unter der Apache Lizenz lizenziert. Neben der offiziellen Seite, gibt es den Download auf Foss Hub. Der Quelltext (sowie der Bugtracker) ist auf GitHub zu finden. Da RESTClient in Java entwickelt wurde ist es unter Linux, Mac OS X und Windows lauffähig.

Tesseract

Open Source sei Danke, gibt es seit 2012 einen Fork von Cube 2: Sauerbraten welcher auf den Namen Tesseract hört und dem Genre der Shooter zuordnen lässt. Ziel der Abspaltung ist es dabei modernere Rendertechniken wie dynamisches Licht und andere Dinge zu nutzen. Das wirkt sich sehr positiv auf das Aussehen der Level aus. Das Spiel als solches ist sehr schnell, so das man durchaus ein paar brauchbare Reflexe mitbringen sollte. Eine weitere Besonderheit von Tesseract ist der integrierte Editormodus, mit welchem man in der First Person Ansicht alleine oder kooperativ die Level bauen kann.

Eine Tesseract-Map

Eine Tesseract-Map

Bezogen werden kann Tesseract auf der offiziellen Webseite. Das Spiel ist für Mac OS X, Linux und Windows verfügbar. Der Quelltext ist in einer Subversion-Instanz zu finden. Lizenziert ist das ganze dabei unter der zlib-Lizenz.

Backslash in der VirtualBox mit Mac OS X als Hostsystem

Unter Mac OS X erstellt man ein Backslash mittels Umschalt + Alt + 7. Führt man allerdings einen Windows-Gast in der freien Virtualisierungslösung VirtualBox aus, so wird man feststellen das innerhalb des Gastes kein Backslash erscheint.

VirtualBox unter Windows

VirtualBox unter Windows

Der Grund hierfür ist ein anderes Mapping der Tastatur. So liegt das Backslash bei Windows-Gästen auf der Tastenkombination Rechte Alt Taste + ß. Damit klappt es auch mit dem Backslash.

Tweepy unter Mac OS X installieren

Bei Tweepy handelt es sich um eine freie unter der MIT-Lizenz lizenzierte Twitterbibliothek für Python, deren offizielle Webseite unter tweepy.org zu finden ist. Unter anderem wird diese Bibliothek für den Twitter Radiergummi genutzt. Im Gegensatz zu früher hat sich die Installation der Bibliothek etwas verändert. Hierfür sollte man jetzt pip nutzen. Dabei handelt es sich um ein Tool zur Paketverwaltung unter Python. Zur Installation gibt man im Terminal folgendes ein:

curl -O https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Damit ist pip installiert und kann genutzt werden:

sudo pip install tweepy

Pip installiert hiermit die Bibliothek Tweety und löst alle Abhängigkeiten auf, so das diese anschließend systemweit genutzt werden kann.