Ambient lighting maken voor je TV

Pagina: 1
Acties:
  • 171 views sinds 30-01-2008

Acties:
  • 0 Henk 'm!

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:25
Ik heb niet zoveel te doen en zoek een nieuwe uitdaging. Ik wil ambient lighting maken als ik films kijk op mijn pc.

Dit topic is een brainstorm topic om te kijken wat er mogelijk is, aangezien er vast wel mensen dit ook willen doen.

Eerst de achtergrond:
Philips heeft een leuk tvtje gebouwd die light geeft zoals het scherm is. Oftewel je ziet een bloedbad en je tv kleurt rood. Leuk, grappig en zeker te doen voor thuis. Paar links:
http://www.flattv.philips.com/shome.htm
http://www.misc.philips.com/ambilight/nl/index2.html

Mij lijkt het leuk dit ook voor thuis te maken, voor de fun.
Dit kun je met een aantal stukje hardwrae doen: rgb leds of gekleurde lampen. Ik heb beschikking over heeft laatste (spots met r,g,b lampen erin (en nog paars, geel, oranje....)). Deze lampen kun je makkelijk met X10 aan je pc hangen zodat je deze kun dimmen.

X10 is een low budget protocol om data over je 220v lijnen te sturen. Je hangt een usb controller aan je pc, die data verstuurd. Je X10 dimmers vangen dit op en regelen het licht. Voila, werkende licht besturing. Een X10 winkel: http://www.mypowershop.eu/

Het aansturen is goed te doen, ik heb het spul niet in huis, maar X10 aansturen is eenvoudig te implementeren.

Nu het systeem zelf.
Het makkelijkst is om een plugin oid in je media speler te stoppen die om de zoveel tijd een frame eruit gooit. Dit frame gebruik je om je gemiddelde RGB waarde uit te rekenen (Dit kan zo simpel of moeilijk als je zelf wil) en hier je lampen op aan te passen. Het doel is nu om dat frame uit een mediaspeler te halen.

Ikzelf heb totaal geen ervaring met media speler die frames uitgeven of met plugins voor bestaande mediaspelers zodat je de frames op kan vragen. Zijn er mogelijkheden om een frame uit een media speler te krijgen, bestaande plugins. Of moet dit nog geschreven worden?
Verder wil ik natuurlijk het algoritme bespreken om te zorgen dat je lampen de correcte kleur worden. Gemiddeldes van een frame is erg banaal en functioneert vast niet perfect.

Verder zou ik graag natuurlijk opbouwende kritiek, feedback, hulp etc. kunnen gebruiken. Dit is mijn eerste ingeving, waarschijnlijk zijn een zat andere. Ik weet niet wat het beste/goedkoopste/makkelijkste is en hoop aan de hand van dit topic hier achter te komen.

EDIT: ik weet niet of het topic goed geplaatst is...

[ Voor 5% gewijzigd door elgringo op 19-03-2007 15:21 ]

if broken it is, fix it you should


Acties:
  • 0 Henk 'm!

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 21:46

Cyphax

Moderator LNX
Je hebt mazzel, daar is een behoorlijk topic over. :)
DIY Ambilight howto?

Saved by the buoyancy of citrus


Acties:
  • 0 Henk 'm!

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:25
Cyphax schreef op maandag 19 maart 2007 @ 15:22:
Je hebt mazzel, daar is een behoorlijk topic over. :)
DIY Ambilight howto?
Nou, is ben meer op zoek naar de software kan tvan het verhaal, hoe je de kleur (die je omgeving moet worden) uit je film moet halen. Het uiteindelijk weergeven is een verhaal appraat (en daar wil ik niet op in gaan)

if broken it is, fix it you should


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 18-07 10:44

Janoz

Moderator Devschuur®

!litemod

Als je nu het topic eens doorleest voordat je het gelijk aan de kant schuift. In dat topic wordt namelijk naast de hardware kant ook de software kant belicht. Er is zelfs iemand die daadwerkelijk een plugin geschreven heeft voor een mediaspeler om zijn lampjes aan te sturen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Adion
  • Registratie: Januari 2001
  • Laatst online: 17-07 20:42
Ik heb onder andere ergens in het begin van dat topic wel eens gepost.
Onder windows zijn er simpel gezegd eigenlijk 2 manieren om aan de pixeldata te komen. Ofwel via GetPixel op de handle van de desktop, ofwel via een DirectShow filter.

-GetPixel heeft het voordeel dat het niet beperkt is tot films, maar ook gewoon je desktop/fotoshow/... kan gebruiken. Bovendien is het zeer eenvoudig te implementeren.
Het nadeel is dat je in je videosoftware het gebruik van Overlays zal moeten uitzetten, vermits bij het gebruik van overlays het beeld rechtstreeks naar de videokaart gaat, en niet via windows.
Indien je geen overlay gebruikt krijg je afhankelijk van de software die je gebruikt ook soms een lichtjes foutieve color space conversie naar RGB, waardoor zwart in een film er een beetje grijs uitziet. Door manueel wat te spelen met de te gebruiken filters/color spaces is dit echter wel op te lossen (mogelijk in Media Player Classic bijvoorbeeld)

-Een DirectShow filter. Dit is een standaard filter die in windows gebruikt wordt om video en audio te demuxen/decoderen/effecten toe te passen en af te spelen.
Je zou dus zelf zo een filter kunnen maken, die dan tussen de decoder filter en de filter die het beeld naar je videokaart stuurt komt. Deze filter krijgt dus alle gedecodeerde frames waar je dan de kleur kunt van berekenen.
Dit heb ik recent proberen doen, en ben er zelf vrij goed in geslaagd, hoewel het verre van evident is. Vooral het ondersteunen van verschillende color spaces is niet triviaal.
Om hiermee te beginnen heb je de DirectX sdk nodig waar ook enkele filter-voorbeelden bijzitten (enkel in RGB helaas, maar goed om mee te beginnen)
Qua performance geeft deze methode wel het beste resultaat, en je hebt ook het voordeel dat je enkel de videoframe bekijkt, en bijvoorbeeld niet eventuele zwarte randen indien je scherm niet dezelfde verhouding heeft als de film. Bovendien kan je blijven gebruik maken van Overlay.

VirtualDJ 2024 - Fast Image Resizer - Instagram


Acties:
  • 0 Henk 'm!

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:25
Adion schreef op dinsdag 20 maart 2007 @ 22:54:
Ik heb onder andere ergens in het begin van dat topic wel eens gepost.
Onder windows zijn er simpel gezegd eigenlijk 2 manieren om aan de pixeldata te komen. Ofwel via GetPixel op de handle van de desktop, ofwel via een DirectShow filter.

-GetPixel heeft het voordeel dat het niet beperkt is tot films, maar ook gewoon je desktop/fotoshow/... kan gebruiken. Bovendien is het zeer eenvoudig te implementeren.
Het nadeel is dat je in je videosoftware het gebruik van Overlays zal moeten uitzetten, vermits bij het gebruik van overlays het beeld rechtstreeks naar de videokaart gaat, en niet via windows.
Indien je geen overlay gebruikt krijg je afhankelijk van de software die je gebruikt ook soms een lichtjes foutieve color space conversie naar RGB, waardoor zwart in een film er een beetje grijs uitziet. Door manueel wat te spelen met de te gebruiken filters/color spaces is dit echter wel op te lossen (mogelijk in Media Player Classic bijvoorbeeld)

-Een DirectShow filter. Dit is een standaard filter die in windows gebruikt wordt om video en audio te demuxen/decoderen/effecten toe te passen en af te spelen.
Je zou dus zelf zo een filter kunnen maken, die dan tussen de decoder filter en de filter die het beeld naar je videokaart stuurt komt. Deze filter krijgt dus alle gedecodeerde frames waar je dan de kleur kunt van berekenen.
Dit heb ik recent proberen doen, en ben er zelf vrij goed in geslaagd, hoewel het verre van evident is. Vooral het ondersteunen van verschillende color spaces is niet triviaal.
Om hiermee te beginnen heb je de DirectX sdk nodig waar ook enkele filter-voorbeelden bijzitten (enkel in RGB helaas, maar goed om mee te beginnen)
Qua performance geeft deze methode wel het beste resultaat, en je hebt ook het voordeel dat je enkel de videoframe bekijkt, en bijvoorbeeld niet eventuele zwarte randen indien je scherm niet dezelfde verhouding heeft als de film. Bovendien kan je blijven gebruik maken van Overlay.
Die directShow loop ik mee vast; simpel omdat ik door het bomen het bos niet meer zie. Zou je het filter wat jij heb geschreven willen posten / emailen?

Getpixel heb ik ook mee gespeelt, dit werkt idd prima, alles gaat goed. Alleen met 3d (directx) en overlay dus niet. Ik vind DirectShow een mooiere uitdaging dus wil hier ook mee verder gaan.

if broken it is, fix it you should


Acties:
  • 0 Henk 'm!

  • Redwood
  • Registratie: November 1999
  • Laatst online: 03-05 11:37

Redwood

The Truth Is In Here

D.I.Y. Ambilight voor je tv kan ALLEEN (op dit moment), als je er een pc tussen hebt zitten.
check bijv. eens http://www.a-r-e.nl/
Zij leveren complete oplossingen, wel te duur, maar mooi als je het zelf niet kan.

Idd. staan in het ambilight topic ook een aantal schemas om het zelf te doen.

Maar net zoals ik zeg, niet zonder tv. Is heel erg moeilijk te realiseren.

Walk without Rythm, and you won't attract the worm!


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 18-07 10:44

Janoz

Moderator Devschuur®

!litemod

elgringo schreef op woensdag 21 maart 2007 @ 08:31:
Die directShow loop ik mee vast; simpel omdat ik door het bomen het bos niet meer zie. Zou je het filter wat jij heb geschreven willen posten / emailen?
Tja, daar doen we hier niet aan. Scriptrequest zijn niet toegestaan in PRG. Verder vind ik dat dit topic weinig bestaansrecht heeft naast het topic in EL. Zeker ook wanneer er helemaal niet over het daadwerkelijke programmeren gaat en dit enkel een code uitwisselings topic wordt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.