You are currently browsing the phreekz posts tagged: coding


StreamDB für XBMC

Auf der Suche nach einer Lösung für ein DMAX-Plugin hab ich diese Seite gefunden – www.thestreamdb.com – also hab ich dafür ein Plugin geschrieben. Auf der Seite werden Streams gesammelt und bei Bedarf aktualisiert – und natürlich verwaisen einige Links auch wieder. Aber grundsätzlich eine schicke Liste an Livestreams, wo auch einige deutsche Programme nicht fehlen dürfen.

————-
In Version 1.0 habe ich sie auf die “deutschen” Einträge fixiert.
Das lässt sich in Eigeninitiative durch Leeren der Variable urlLang im Code beseitigen.
————-
Download StreamDB-Plugin v1.0 (18.07.2011)
Download StreamDB-Plugin v1.26 (29.12.2011)

Download StreamDB-Plugin v1.27 (02.01.2012)

——-english———
Ok, i tried to figure out scraping the stream/offline-videos from dmax(germany). so i found this database of livestreams, straight made for xbmc-users – this is the plugin to readout/scrape all online-streams. Link above is fixed to the german database, below is the international (main) site, but you’re able to specify the scraping, if you change the var urlLang to Yours (for example for germany it is urlLang=’db/German’). happy scraping..

Download StreamDB-Plugin international v1.0 (18.07.2011)

– Sorry – will only update the german version.

RTL NOW für XBMC Dharma

rtlnow xbmc v1.1

addon rtl now xbmc dharma

Endlich fertig. Nachdem ich am Plugin für v9.04 nicht fertig wurde (swfVerify!), wurde nun in XBMC Dharma das gewünschte Modul fest verdrahtet :D Hier also das Video-AddOn für XBMC Dharma, getestet unter Ubuntu 10.04LTS (XBMC 10.04?) und Windows XP (XBMC 10.0).

Nun, zur Kurzerklärung : Dieses AddOn ermöglicht das Schauen der freien Videostreams von RTL.NOW, nicht mehr, nicht weniger. Tatsache ist, dass sich immer irgendwelche Fehler einschleichen, so auch Hier. GLEE läuft unter der Fahne von SuperRTL, wird angezeigt, aber kann nicht abgespielt werden. Dieses AddOn kann in der derzeitigen Fassung (ohne Proxy) nur in Deutschland, Schweiz und Österreich genutzt werden. Sorry. UND(!) Ich werde aufgrund meines sonstigen Lebens nicht all zu schnell auf mögliche Probleme reagieren. Wenn es mal nicht läuft, dann ist es eben so und ich kann nur in Aussicht stellen, dass ich es beheben werde – spätestens, wenn meine Frau darüber klagt, ihre Serie nicht mehr in XBMC schauen zu können :)

————————————-

Finally this story is ending. I started coding a plugin for XBMC 9.04, because of my wife and her lovely series. I couldn’t finish, because of lack of the important swfVerifying in rtmpdump. There has been an attempt from mighty_bombero, but it was to difficult for a simple plugin, so it never turns out into a well-known thingy. Now, this one is an AddOn for XBMC Dharma, tested under Ubuntu-10.04LTS  XBMC Dharma.04 and WindowsXP-SP3 XBMC v10.0.

BUT : Sorry, it just can be used in Germany, Switzerland and Austria, because of IP-Check. (Proxy for a coming Version? I think, not..) AND(!) There’s something more in life than patching/updating an AddOn – i won’t be the fastest coder – so if its not running, sorry, if i find the the time, i will patch.

regards chmee phreekz
DOWNLOAD ADDON RTL NOW v1.1 XBMC
DOWNLOAD ADDON RTL NOW v1.4 XBMC
DOWNLOAD ADDON RTL NOW v1.41 XBMC
DOWNLOAD ADDON RTL NOW v1.45 XBMC
DOWNLOAD ADDON RTL NOW v1.48 XBMC (29.12.2011)

DOWNLOAD ADDON RTL NOW v1.51 XBMC (25.01.2012)

import it via zip-functionality in the addon-manager.

IE Browser Screen Saver

Eine so simple Idee, mit grandiosen Möglichkeiten. Dieser Screensaver stellt lediglich einen IE-Browser im Vollbildschirm dar. Was dargestellt wird, ist Euch überlassen. Ob Ihr Euch einen Twitter-Ticker schreibt, oder eine JS-Animation oder ein sich selbst aktualisierendes SVG-Diagramm (IE? lol), völlig egal.

Dieses kleine Stück Code ist lediglich getestet unter WinXP 32Bit Prof SP3, jede Meinung kann hier als Kommentar abgegeben werden. Jede Hilfe, das Ding besser zu machen, wird gerne gehört!

(1) Progrämmchen runterladen (zip mit readme-Datei)
(2) entpacken und (unter XP) in Windows/System32 ablegen
(3) Feddich! Schon ist das Ding bei den Bildschirmschonern nutzbar.

Downloadlink -> IEBSS.zip IE Browser Screen Saver v1.0

Ich habe dazu noch einen Pseudo Fullscreen-Youtube-Player in html gebaut, welcher videos und playlists wiedergibt. (zB http://www.phreekz.de/DLS/youtube.php?v=Hz86TsGx3fc oder http://www.phreekz.de/DLS/youtube.php?p=3BE937184CD2E957). Viel Spaß damit.

Fertige Seiten mit Beispielen:
Flickr als Slideshow – http://www.flickr.com/photos/chmee/show/
Youtube in Fullscreen – http://www.fullscreentube.com/watch?v=1GU-xCbTWvA
Vimeo in Fullscreen – http://www.fullscreentube.com/14757348

RTLNow in XBMC

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

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

WLAN Mediaclient TG100 aufbohren..

Telegent TG100 Mediaplayer – Ich hab’ dieses Ding für knapp 30Eur in der Bucht erstanden. Es ist ein UPnp/DLNA-Mediaplayer über LAN/WLAN. Was mich an diesem Ding stört, ist die absolut grottige Umsetzung. Über WLAN ständige Verbindungsabbrüche, hässliche Oberfläche und viele Dinge, die das Ding könnte, wenn man einfach mal 2 Monate länger nachgedacht hätte.

Auch wenn ich auf Anhieb zu wenig Ahnung habe, das Ding auszuhebeln.. Ich fange erstmal an, hier alle Specs zu dem Gerät zu sammeln. Möglicherweise finden sich weitere Interessierte..

Anschlüsse:
SCART
Mini-DIN – SVideo
RCA – FBAS
RCA – RGB/YUV/YPbPr
RCA – Audio analog L/R
Opti – Digi-AudioOut
RJ45 – 100MBit-LAN
MiniPCI – WLANcard 54MBit

Chips auf der Platine:
CPU – Kendin KS8695SP (166MHz ARM core with MMU)
RAM – 2x IC42S16800 16MByte
FLASH – 2x mit 4 oder 8MB jeweils
Mediaprozessor – Möglicherweise – SIGMA EM8476

Wenn man in die Sheets der Chips schaut, wäre soviel mehr möglich :) zB ist in die CPU ein 5Port-100MBit-Switch eingebaut (mehrere TG100 verlinken) und sie hat auch 3 PCI-Master-Ports, wobei einer auf Anhieb als MiniPCI auf das Board gelötet ist, man stelle sich vor, da eine 2,5″-Festplatte ran und als Kioskmode-Player für Werbung oder Ausstellung. Der Sigmachip kann mit Videoinputs umgehen und als Output bis 1080p per DVI/HDCP ausgeben.

Mögliche Ports auf der Platine:
1x JTAG J2
2x Serialports CNN1 und CNN2

Eingesetztes OS :
Busybox aufbauend auf Kernel 2.4.18

This is the root filesystem, it contains
- busybox (GPL)
- tinylogin (GPL)
- udhcp (GPL)
- uClibc (LGPL)
- lufs (GPL?)
- more microwindows/nano stuff (MPL or GPL)
- ihttpd (looks like BSD, not sure)
- a heap of graphics type libraries i dont recognise.
- realmagic kernel modules (binary only i assume)
- lufs kernel module
- IPN2220STA kernel module (wireless lan driver i think)
- some wireless binaries
- what looks like a few custom binaries.   

So i suspect telegent might be a reseller for cybertan, who get their
hardware from micrel.

Links zu dem Thema bis Dato:
techn. Beschreibung -

https://aland.cs.uni-magdeburg.de/wlan/Hardware/TG100


GPL-Verletzung -

http://lists.gpl-violations.org/piperma … 00511.html


Telegent Seite mit Source -

http://www.winbox.ag/16-0-tg100-air-media.html

nächste Infos demnächst :)
mfg chmee

Photoshop Scripting in JSX

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);

Mootools FX-Scroll unter v1.21

Leider gibt es auf der Demos-Seite von mootools nur eine ältere Version zum Umgang mit FX.Scroll. Dies sollte dann wohl überall funktionieren, Sourcecode mit JS und CSS:

 HTML |  copy code |? 
01
02
 
03
   <title>mootools 1.21 Scroll - phreekz</title>
04
   <script src="mootools_121.js" type="text/javascript"></script>
05
   <script src="more_121.js" type="text/javascript"></script>
06
 
07
<script type="text/javascript">// <![CDATA[
08
 
09
window.addEvent('domready', function() {
10
 
11
  var fx = new Fx.Scroll($('main'), {duration: 2000});
12
  $('ok').addEvent('click', function() {
13
      fx.toBottom();
14
   });
15
  $('ok2').addEvent('click', function() {
16
      fx.toTop();
17
   });
18
  $('ok3').addEvent('click', function() {
19
      fx.toElement('mid');
20
   });
21
});
22
// ]]></script>
23
 
24
  - <a id="ok" href="#">scroll Down</a> - <a id="ok3" href="#">scroll to div mid</a> - <a id="ok2" href="#">scroll Top</a> -
25
 
26
<div id="main" style="overflow: hidden; width: 200px; height: 150px; background-color: #cccccc;">HDMI wurde von der Industrie zielgerichtet für den Bereich der privat genutzten Unterhaltungselektronik (engl. „home entertainment“) eingeführt. Da hier immer mehr digitale Komponenten eingesetzt werden und auch der Nutzinhalt mittlerweile vorwiegend in digitalisierter Form vorliegt (z. B. DVD, DVB usw.), wurden die Schwächen der bisher unvermeidlichen Digital-Analog- und Analog-Digital-Wandlungen immer offensichtlicher.
27
<div id="mid">Lange Zeit</div>
28
hatte sich die Filmindustrie jedoch jeder Bestrebung widersetzt, Videodaten digital auszugeben. Man fürchtete nämlich, dass jeder Kopierschutz über kurz oder lang überwunden werden könnte. Mit dem Kopierschutz HDCP 1.1 (High-bandwidth Digital Content Protection), der in der HDMI-Spezifikation vorgesehen ist und in praktisch jedem auf dem Markt befindlichen HDMI-fähigen Gerät zum Einsatz kommt, scheinen diese Bedenken nun nicht mehr zu bestehen.</div>

  • Namenskonventionen (id’s, class’es) einhalten, keine Unterstriche, keine Zahl am Anfang..
  • der Hauptlayer muss natürlich mit overflow:hidden begrenzt werden.
  • FX.Scroll wurde in die more-Lib ausgegliedert

mfg chmee

LBM 2 v1 – Benchmark

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

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