Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Kévin Gosse

Clair, .NET, et précis
Silverlight 3 + Vidéo : Détection et injection de contenu

Vous souvenez vous de cette démonstration des possibilités du couple Firefox 3 / HTML5 ? Récemment, quelqu’un m’a soutenu sur un forum que HTML5 était actuellement la seule technologie permettant de faire cela aussi facilement. De là est né un petit défi, à savoir de reproduire la démonstration avec Silverlight 3. Et c’est chose faite !

Le principe consiste ici à effectuer le rendu de la vidéo dans un WriteableBitmap. A partir de là, vu qu’on a accès à la valeur des pixels, il n’y a plus qu’à appliquer l’algorithme de détection (j’ai repris à peu de choses près celui de la page de démonstration) et à positionner un élément par dessus la vidéo. Les transformations (rotation, agrandissement…) ne posent pas de problème vu que Silverlight fournit tout le nécessaire.

Vous pouvez voir le résultat ici, et vous trouverez également pour ceux qui le désirent le code source.

Preuve s’il en est qu’on n’a pas fini de s’amuser avec Silverlight.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: vendredi 7 août 2009 15:32 par KooKiz

Commentaires

maitredede a dit :

Intéressant de voir que pour faire le café on a le choix des cafetières ;)

Est-ce qu'il serait possible de faire un comparatif de performances entre les deux solutions, afin de déterminer laquelle des deux peut être la plus intéressante à utiliser ?

Je pense que silverlight est plus rapide, car il utilise le framework .net, et qu'en plus il doit y avoir moyen de tirer parti des procs multicore...

# août 7, 2009 16:30

Graveen a dit :

Si c'est pour faire les mêmes choses qu'en html5, autant choisir la solution standardisée, multiplateforme et ne nécessitant pas de runtime pour fonctionner.

Je ne pense pas à terme que SL survive à Flash. Même si intrinsèquement SL est meilleur, le taux de pénétration me semble insurmontable.

Du coup, pour ces 2 raisons, j'aurais choisi la cafetière html5 :D

# août 7, 2009 16:37

FREMYCOMPANY a dit :

Le problème de l'HTML 5... c'est qu'il n'existe pas... Il s'agit seulement de brouillons que chaque navigateur implémente à sa sauce et tente d'imposer. Donc, il n'y a pas de compatibilité suffisante pour utiliser la solution HTML 5. Trop peu de navigateurs seraient compatibles.

A l'opposé, la solution Silverlight est viable dès aujourd'hui. Il me semble que près d'un ordinateur sur deux ont Silverlight installé. Ce qui est somme toute assez bien. Par contre, sur mon pauvre petit PC, l'exemple Silverlight rame gravement... Pas essayé la solution HTML 5, j'ai mis trop de temps à retrouver un PC clean après avoir lancé la solution Silverlight Big Smile

# août 7, 2009 19:04

KooKiz a dit :

Je crois que j'ai un petit problème de synchro. Un thread se réveille toutes les 50 ms et appelle la fonction de rafraichissement avec BeginInvoke. Le problème c'est que si celle-ci met plus de 50 ms à s'exécuter, les appels vont s'accumuler et... Tu vois ce que ça donne ^^'

Et comme c'est de l'asynchrone, ce n'est pas évident à corriger. J'ai essayé avec un mutex mais manifestement ça n'a pas dû marcher.

# août 7, 2009 19:18

KooKiz a dit :

Évidemment, si j'oublie d'appeler Reset sur le ManualResetEvent... J'ai remplacé l'exemple par une version corrigée. Je n'irai pas jusqu'à dire qu'elle sera fluide, mais au moins elle devrait laisser ton pc dans un état convenable :)

# août 7, 2009 19:28

Graveen a dit :

je ne sais pas. FF3.5 est il + ou - répandu qu'un SL3 déployé ? je suis loin d'en être sûr.

Quand à l'avenir, lui seul nous le dira ! :)

# août 7, 2009 20:25

FREMYCOMPANY a dit :

Je confirme, la nouvelle version marche bien mieux. C'est beaucoup plus fluide, et ça ne bloque plus mon PC Wink

# août 8, 2009 15:01

FREMYCOMPANY a dit :

Quand ceux qui ont Silverlight 2 auront mis à jour à la version 3, plus de monde auront Silverlight 3 que FireFox 3.5, et même que FireFox, Opera, Safari et Chrome mis ensembles... Un PC sur deux.

# août 8, 2009 15:07

Graveen a dit :

1 sur 2, ca sort de ton chapeau ou tu as des sources précises ?

http://www.keypi.com/

# août 8, 2009 16:28

FREMYCOMPANY a dit :

Le chiffre 1/2 provient de chez Microsoft. Je n'ai pas vérifié moi-même. Une première source affirmait que Microsoft avait dit que Silverlight était plus installé que FireFox, Chrome et Safari, ce qui laisse penser à près de un ordinateur sur deux.

Par ailleurs, un autre chiffre trouvé sur le net donnait 300.000.000 de PC ayant Silverlight installé. Une recherche sur le web me donnait +/- 650.000.000 de PC connectés au web, ce qui donnait plus ou moins 45%.

Par contre, c'est vrai que sur le site que tu cite, on ne donne que 32% de pénétration à Silverlight. Ma fois, c'est possible. Ce genre de donnée est très souvent invérifiable.

# août 9, 2009 11:03

nk54 a dit :

Les chiffres quant à la diffusion de sl sur les pc (j'ai fait un mémoire sur silverlight 2 et 3 pour ma licence ^^)

c'est loin d'1 machine sur 2 snif on est entre 25 et 30% (silverlight 2 et 3 compris j'entend par là que si qq1 dispose de sl2 ca compte un pc équipé de sl et s'il avait sl3 ba c'est pareil)

Mais rassurez vous la pénétration va faire un bond avec windows 7 :D

je ne m'en fais pas je suis sur que d'ici fin 2010 50% des pc en seront équipés.

Super cool ton projet ! Tu as rencontré beaucoup de difficultés à reproduire ce comportement ? Et par curiosité, tu as mis combien de temps si tu en as une idée ?

Merci ! super billet :)

# août 10, 2009 11:57

KooKiz a dit :

Je dirais environ 2 heures, dont une bonne demi-heure pour récupérer et ré-encoder la vidéo. J'ai perdu pas mal de temps à cause d'un bug dans l'algorithme de détection (un détail que je n'avais pas compris dans le javascript, et que j'ai donc mal porté).

La seule difficulté se situe au niveau de la synchronisation entre le timer (qui va lancer l'algorithme de détection) et le rafraichissement proprement dit (qui se fait par BeginInvoke, donc asynchrone). C'est d'ailleurs à cause de ça que FREMYCOMPANY a eu des problèmes.

Pour tout le reste, c'est un portage bête et méchant de la page de démonstration.

# août 10, 2009 12:10

griffondorsonic a dit :

j'aimerais silverlight disparaisse et que html5 remplace tout les plugin : adobe flash player, quicktime, silverlight , java et d'autres, marre des plugins, sa ralentis la machine, vive HTML5

# novembre 2, 2010 23:00
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [SharePoint] Les sessions TechDays 2012… par Le blog de Patrick [MVP SharePoint] le il y a 6 heures et 19 minutes

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le 02-09-2012, 11:01

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le 02-09-2012, 08:28

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59