Archiv

Artikel Tagged ‘coding’

RTLNow in XBMC

3. August 2009 chmee 7 Kommentare

rtlnow 4 xbmcJuhei, Ich saß also an diesem Problem. Die “noch nicht fertige” Lösung ist ein Python-Miniscript (Videoplugin), welches die freien Videos der RTL-Now-Seite scraped und dann zum Abspielen bereitstellt. Abgesehen davon, dass die scheinbar ständig an der Seite rumwerkeln (das macht sich beim Datensammeln per Regex bemerkbar) ist das Hauptproblem, dass die per RTMP gesendeten FLV-Videos verschiedene Schutzmechanismen nutzen können, zB in diesem Fall die SWF Verification, welche die Checksumme des Players unregelmäßig (etwa jede Minute) abfragt. Wenn diese nicht kommt, bricht das Video ab. Somit kann ich im Moment nur sagen,

  • Ja, alle Online-Videos werden mit dem Plugin gefunden
  • Ja, alle freien Videos können gestartet werden
  • Ja, das Video bricht nach etwa 1 Minute ab, weil die Verification Response nicht kommt.

Man wird sehen, ob die XBMC-Developer irgendwann so etwas einbauen werden. Sowas kann auch recht schnell nach Hinten losgehen und XBMC hat ne Anzeige, weil die Software ermöglicht, nicht für die Software bestimmte Videos abspielen zu können. Vielleicht seh ich es aber auch nur zu eng.. Übrigens, Hier noch der Link zum XBMC-Forum, wo ich ständig auf Neuigkeiten hoffe

Hier zum Download die Version v.096 (Stand : 02.08.2009)

v0.961 – Die haben n bissel an der Schraube gedreht, ich hab nachjustiert.. thirdslash in rtmp_url

Hier zum Download die Version v.0961 (Stand : 29.09.2009)

Photoshop Scripting II – automatisches Keying

8. Juli 2009 chmee 1 Kommentar

Diese Frage wird recht oft gestellt : Das automatische Freistellen mehrerer Bilder/Objekte. Also, hier das zugehörige Script, welches einfach nur den Farbwert an Pixelstelle 10/10 ausliest und in einer Javascript-Alert-Box anzeigt.

getColor.jsx

#target photoshop
var docAktuell = app.activeDocument;

var pixelLoc = [UnitValue("10 pixels") , UnitValue("10 pixels")];
var colorSamplerRef = docAktuell.colorSamplers.add(pixelLoc);
var currentColor = colorSamplerRef.color;

var redVal = Math.round(currentColor.rgb.red);
var greenVal = Math.round(currentColor.rgb.green);
var blueVal = Math.round(currentColor.rgb.blue);

alert("Pixel [10, 10] = (" + redVal + ", " + greenVal + ", " + blueVal + ")");

Scripts werden grundsätzlich in ./Photoshop/Presets/Scripts/ abgelegt und sind dann in Photoshop unter Script erreichbar. Übrigens, es gibt ein tolles Forum dafür : http://www.ps-scripts.com/bb/index.php – Leider ist da nicht soviel los, Scripting ist halt nicht Jedermanns Sache.

Hier also eine Minimalversion eines Photoshopscripts, dass in einer Datei 4 Selections in den Ecken nimmt, per Similar eine Keyingauswahl erstellt und diese in einer Maske speichert.

AutoKeyer.jsx

#target photoshop
var docAktuell = app.activeDocument;
var maxX = docAktuell.width;
var maxY = docAktuell.height;

//change backgroundlayer to worklayer
if(docAktuell.layers[0].isBackgroundLayer==true){
docAktuell.layers[0].isBackgroundLayer=false;
}

// makeLayerMask function - done by Paul Riggott
// http://forums.adobe.com/thread/290125
function makeLayerMask(maskType) {
if( maskType == undefined) maskType = 'RvlS' ; //from selection
var desc140 = new ActionDescriptor();
desc140.putClass( charIDToTypeID('Nw  '), charIDToTypeID('Chnl') );
var ref51 = new ActionReference();
ref51.putEnumerated( charIDToTypeID('Chnl'), charIDToTypeID('Chnl'), charIDToTypeID('Msk ') );
desc140.putReference( charIDToTypeID('At  '), ref51 );
desc140.putEnumerated( charIDToTypeID('Usng'), charIDToTypeID('UsrM'), charIDToTypeID(maskType) );
executeAction( charIDToTypeID('Mk  '), desc140, DialogModes.NO );
}

// change Rulerunits to px
var strtRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;

// 4 Corner rectangled Selections
docAktuell.selection.select(new Array (new Array(10,10),new Array(20,10), new Array(20,20), new Array(10,20)),SelectionType.REPLACE, 1, false);
docAktuell.selection.select(new Array (new Array(maxX-10,10),new Array(maxX-20,10), new Array(maxX-20,20), new Array(maxX-10,20)),SelectionType.EXTEND, 1, false);
docAktuell.selection.select(new Array (new Array(maxX-10,maxY-10),new Array(maxX-20,maxY-10), new Array(maxX-20,maxY-20), new Array(maxX-10,maxY-20)),SelectionType.EXTEND, 1, false);
docAktuell.selection.select(new Array (new Array(10,maxY-10),new Array(20,maxY-10), new Array(20,maxY-20), new Array(10,maxY-20)),SelectionType.EXTEND, 1, false);

// Grab all pix similar to the selection
docAktuell.selection.similar(60,10);

// change the selection a bit
var Selected = app.activeDocument.selection;
Selected.expand( 0.2 );
//Selected.contract( 5 );
Selected.feather( 0.2 );

//make a mask from it
makeLayerMask('HdSl');

//done ! thx by phreekz.chmee

Wieder mal die wichtige Info, dass keine Fehler abgefangen werden. Ich habe das Script mal mit diesem Bild ausprobiert, mit Diesem und auch mit diesem Hier . Sieht erstmal gut aus. Im Script sind die Variablen recht gut einsehbar, zB im Similar Bereich die Werte für Toleranz (60) und Antialiasing (10), danach auch noch Variablen, um die Selektion zu verbessern, Expand und Feather.

Wenn man am Scripting Gefallen findet, sollte man mit diesem Tutorial weitermachen.

mfg chmee

Photoshop Scripting in JSX

31. März 2009 chmee Keine Kommentare

Scripting für Photoshop
Wenn man besondere Wege braucht, Photoshop es so nicht unterstützt oder wiederkehrende Arbeitsschritte in der Aktion nicht sinnvoll umgesetzt werden können, dann greift man zur ultramächtigen Scripting-Engine von Adobe. Das Schöne ist, die Scripts können komplette Arbeitsschritte sein, können aber auch Teilaufgaben in Aktionen ausführen. Hier werden nach und nach meine Scripts erscheinen.

Wie kann ich sie benutzen ?
Man kopiert den Code aus dem Codebereich und speichert ihn mittels eines simplen Texteditors in eine Datei, benennt sie dementsprechend (Endung . jsx) und kopiert jene in den Presets/Scripts-Ordner. Nach einem Neustart von Photoshop findet man den Eintrag in Datei/File->Scripts.

Vorsicht!
Ich fange keine Fehler in meinen Scripten ab, vorteilhaft ist dadurch die Kürze, nachteilig ist aber, dass man Fehler, wenn sie auftreten nicht erkennt. Zudem ist Jeder, der diese Scripts benutzt, für seine Daten selbst verantwortlich, also immer erst testen und selbst entscheiden, ob alles glatt läuft.

SaveAsTIF
Ganz einfaches Script, das von der aktuell geöffneten Datei eine TIF-Kopie im gleichen Ordner speichert. Man fragt sich, wozu so etwas ? Grundsätzlich geht es um den Einsatz in einer Aktion oder Batch, wo bei normalem Einsatz der “Speichern unter..”-Funktion dem Namen -Kopie anhängt UND der Speicherort fixiert bleibt ( Der Ordner, der beim Aktion-Erstellen benutzt wurde ). Das Bild sollte vor dieser Scriptaktion auf eine Ebene zusammengelegt sein!

Da das Script sehr einfach und kurz ist, kann man es recht schnell an eigene Bedürfnisse anpassen.

Script – SaveAsTIF.jsx

#target photoshop

var DokAktuell = app.activeDocument;
var DokFilename = DokAktuell.name;
var DokBasename = DokFilename.match(/(.*)\.[^\.]+$/)[1];
var DokPfad = DokAktuell.path;

var tiffSaveOptions = new TiffSaveOptions();
tiffSaveOptions.embedColorProfile = true;
tiffSaveOptions.imageCompression = TIFFEncoding.NONE;

DokAktuell.saveAs((new File(DokPfad+"/"+DokBasename+".tif")), tiffSaveOptions, false);

LBM 2 v1 – Benchmark

19. Januar 2009 chmee 5 Kommentare

Little Benchmarker 2

Kurzbeschreibung:
Ein kleiner aber feiner Benchmarker, der über OpenGL-Anweisungen eine Gravitationssimulation darstellt. Die Grafikanweisungen fallen so wenig ins Gewicht, dass man dem Benchmark eine reine CPU-Wichtung zusprechen kann. Die Werte stimmen beim Anzeigen in verschiedenen Auflösungen stets überein ( naja, +-2% Änderung )

Der Benchmark erhöht/vermindert die Menge an Partikeln soweit, dass eine FPS-Zahl von 25 erreicht wird. Die Menge an Partikeln ist dann die aussagekräftige Zahl. Achtung : Dieser Benchmark beansprucht nur einen Kern! Was aber wiederum für Spiele eine recht nützliche Aussage sein kann, da diese bis Dato selten mehrere Kerne nutzen.

Auflösung : 1024×768 oder höher

Download Hier – LBM2.zip – Win32 Exe – 480KB

Kurz nachgedacht : Ich wollte einen klaren Benchmarkwert haben, der etwas über die Singlecore-Rechenkraft aussagt. Diese Partikelzahl wird aber gegen einen Grenzwert laufen (wo wird der sein..), denn der Rechenaufwand steigt quasi quadratisch an (2000 Partikel müssen gegeneinander berechnet werden, das sind 2000*1999 Durchgänge). Deswegen habe ich hier noch den Wert für die Durchgänge in das Diagramm eingetragen, der wiederum linear steigt und einen lesbareren Wert darstellt.

Nach einer groben Betrachtung eines Diagramms wäre beim Core2Duo bei 6,6GHz und knapp 1910 Particles Schluß.. Schluß heisst, jedes weitere Partikel würde Unmengen an Rechenpower benötigen. Sprich, fur 100 weitere Partikel müssten zB 2GHz an Mehrfrequenz gebracht werden.

Errechnet wird er : Partikel*(Partikel-1)*25[Frames] = Durchgänge/Sekunde

FreeTitler – Videotitler

17. Januar 2009 chmee Keine Kommentare

FreeTitler Win32

Kurzbeschreibung :

Hab mal einen Freeware Videotitler programmiert, weil ich den auch auf einem Job benötigte :) Man kann diesen Titelgenerator verwenden, wenn man einen Mixer benutzt, der Luma/Chromakeying unterstützt. Das Ziel war es, die Benutzung so einfach wie möglich zu halten. Das Programm nutzt die aktuellen Bildschirmeinstellungen im Vollformat, hat 2 Titel, die veränderbar sind. Veränderbar sind Hintergrundfarbe ( zB für Colorkeying ), Fontsize, Font, Fontcolor und Position. Alles noch sehr rudimentär, aber es funktioniert.

Zu Beachten :
Das Programm muss nicht installiert werden, benötigt aber die Fonts im Standard-Windows/Fonts-Ordner auf C:/ wie zB Arial, Courier und Times.
Ansonsten ist das Programm selbsterklärend, einfach [CTRGL]+H im Programm drücken.

Download
FreeTitler v1 Runterladen Hier – Win32 – Zip-Datei – Größe etwa 483KB

To Come in v2 :

  • Unterstützung von Bildern
  • Positioning verbessern
  • Fontauswahl verbessern
  • Farbauswahl erweitern
  • direkte Auswahl der Auflösung
  • Outlines und Schatten
  • uU bei 2 Monitoranschluß Title und Lumakey getrennt ausspielen

mfg chmee

Fluid Dynamics in Echtzeit

17. Oktober 2007 chmee Keine Kommentare

Audiosequencer in J2ME

6. Oktober 2007 chmee Keine Kommentare
–> Nachtrag Jan 2008 ->
Das Problem ist, dass auch J2ME sehr unterschiedlich implementiert wird. Und auch Flash ist auf Handies nicht gleich Flash. Das eine Gerät kann WAV abspielen, dass andere -obwohl der Befehl implementiert ist- gibt keinen Laut von sich. Schaut auch nach Flashlite, wenn Euch das Thema interessiert.

Motion Tracking – Pixeltracking

6. September 2007 chmee Keine Kommentare

Hier werden die Infos für das nächste Projekt gesammelt:

Zusammenfassung der Standard-Algorithmen im 2D-Tracking. von 1997
http://www.cs.ucf.edu/courses/cap6411/book.pdf

CodeProject – BlobDetection uÄ
http://www.codeproject.com/cs/media/VisualSLPart2.asp

Feature Point Detection
http://en.wikipedia.org/wiki/Feature_detection
http://pubs.doc.ic.ac.uk/Pantic-SMC05-2 … MC05-2.pdf

Gabor based PixelTracking
ftp://ftp.neuroinformatik.ruhr-uni-boch … acking.pdf

OpenCV – Algorithmen-Bibliothek Schwerpunkt Bildverarbeitung-Robotik
http://de.wikipedia.org/wiki/OpenCV
http://www.intel.com/technology/computi … erview.htm

LBM – Little Benchmarker v1.0

13. April 2007 chmee Keine Kommentare
Little Benchmarker v1.0
——————————

Ein kleines Programm, das vollständig über CPU und Memory-Anweisungen Animationen darstellt. Einerseits
hübsch anzusehen, andererseits eine Vergleichsmöglichkeit beim CPU-OC. Läuft ohne DirectX/OpenGL-Beschleunigung !

Nötig: Windows XP und Net2.0 Laufzeitumgebung

1 – SinWarp
————–
Ein SinusWarping Effekt. In jeder Farbkomponente finden
andere trigonometrische Überlagerungen statt. Standard Demo Effekt
Übermäßige Math.Sin/Cos Nutzung.
Bild

2 – SinMove
————–
Viele Punkte bewegen sich auf Sinus/Cosinus-Bahnen
Math.Sin/Cos und GetPixel*0.9=SetPixelColor-Schleife
Bild

3 – Gravity
————-
Viele Punkt ziehen sich abhängig von ihrer Masse an. Kleine
Gravitationssimulation.
Bild

4 – Blurred Gravity
———————-
Gravity anstatt CLS Screen mit Get/Set-Spielchen
Bild

5 – Fluid Dynamics
———————
Die FluidDynamics von Jos Stam in VB.Net verpackt
Bild

DownloadHIER