Informatique

Pentax K-7 a new contender in the video capable DSLR

A new DSLR from pentax has been anounced. Indie movie makers, rejoice ! This one has 720P motion jpeg recording, an aps-C sensor size, audio input. All settings can be locked prior to recording. It only lacks 24P and headphone or audio level meters to be perfect, at least for me. More infos : http://www.imaging-resource.com/PRODS/K7/K7A.HTM This is great news, it's a very strong contentder for 5dmark II, the GH1 and even more for the D90 and the new rebel. For this price point, if video footage confirms my analysis, it's the best option curently. UPDATE : I received a K-7 by Pentax France for testing. You can read my analysis here http://www.123piano.com/test-de-la-fonction-video-du-pentax-k-7 (in french, but there are also videos to watch :-)

Gmail, cloud computing, peer to peer, and the rest of us.

Yesterday, Gmail had a quite big outage. Approximatively 14% of their users have experienced slow or inexistent mail access. This makes a poster on slashdot nervous : http://tech.slashdot.org/article.pl?sid=09/05/14/1822200 " [...] This is exactly what makes me nervous about cloud computing and data storage. It's bad enough when I screw up a config and it takes down my mail, but what about when it happens to the entire globe at once?" This makes me nervous as well. But I think there will soon be a solution to this. Why are we using gmail? Because it is available from everywhere, easy to use and provide ample storage. All this is done using the cloud computing metaphore. I think it is possible for a company to provide the same service without cloud computing. Available from everywhere : have a cached copy of the UI and date stored on every computer the user has (peer to peer system, where a peer is some computer owned by the same user, not a random guy you cannot trust). Only if the user is on a new computer AND the service is down at the same time will bring any trouble Easy to use : keep your user interface secrets by compiling it someway and distribute the copy using a browser based system. Like the offline system provided already for data, only it would be extended to software as well. Keep working on this global user interface from the feedback of a world of users. Ample storage : use local storage and only use central servers for backup and data sync. Use peer to peer system to sync data. Yes it's a lot of work, and it will require a lot of change in the existing browser infrastructure. A lot of work, but it's the price to pay for efficency, high availability, environement friendlyness, and most importantly freedom of the data owners. Expect to see this in the next few years. Expect the cloud computing metaphore to change a bit, and surround more the user than the entire world. A cloud as we see it today won't make any sense. The cloud will be made by the user devices, not a large hangar somewhere in the world.

Elphel project

Time to introduce you the Elphel project.Elphel is an open hardware camera. It seems all the design and software is open source.

Curently, the camera provides :

- 5 mpixel sensor
- full hd recording at 0-30 fps
- mjpeg encoding to .mov files
- sound input usuig linux compatible usb audio adapter (phantom powered XLR inputs may work)
- full manual control
- 5 watts power consumption
- very small size
- built in linux with php api and socket based api

We are working on doing a real digital cinema camera based on this. The current work can be seen on http://cinema.elphel.com

I'm working on the website, doing some tests with the camera (I got one lended for some undefind time), if possible work on the user interface, provide some hardware tests (like lenses and audio)

A very cool project that may lead to unexpected results :-)

If you want to see the camera, feel free to contact me. I'm located in Brussels (Belgium)

What every prosummer camcorder should have. If only companies listened to us ...

I'm curently reviewing available "prosummer" camcorders. On the lower end side, there is always a problem in the area of manual controls and audio support.

The latest panasonic model provide a multiusage lens ring. Some provide a knob that can be used for one manual feature at a time (sony). Some only provide a touche screen or confusing menus. That's not how it works in either a pro or amateur scenario. The controls are either there and accessible or they are not used or usable in a live situation.

However, there is a simple solution to that problem, and I suspect manufacturer are not doing this because they know their lower end products are "good enough" for some pro usage image quality wise.

Here is my take on this problem. Engineers, please listen.

- always provide a lens ring for the critical manual focus (especialy in HD)
- provide three knobs on the camcorder, and allow users to define what they are used for in the menus. Some will use knob 1 for apperture, knob 2 for gain, knob 3 for zoom speed, wathever. Some other will use knob 1 for left audio channel, knob 2 for right, etc...
- Provide sane default for those knobs : aperture, audio level (both channels at the same time), shutter speed (this is only an example)
- provide audio LINE input if you only provide a jack input. Allow the user to choose in the menu either mic in with AGC and line input without AGC. This way users will be able to use an xlr apapter for professional audio and won't have problem of AGC or mic level input ruining the connection. There is also lot less interferences using line level signals.

The latest panasonic camcorders (those with lens ring) with those additional knobs, line audio input and a beachtek or juicedlink xlr adaptor would be a killer combination for prossumer use, at a fraction of the cost of other solutions.

We can always dream, isn't it ?

Comment réaliser un direct broadcast vidéo par internet ?

La diffusion en direct de vidéos par internet est encore une chose nouvelle qui demande pas mal de recherche et de réglages pour fonctionner. Malgré tout, elle est depuis quelques temps à la portée de toute personne ayant de bonnes connaissances techniques en la matière.

Hier, le 18 septembre 2008, nous avons proposé au public une conférence en direct ayant pour thème "De la télévision pour les bébés au jeux vidéos pour les adolescents" par Serge Tisseron. Conférence organisée dans le cadre de mon boulot pour www.yapaka.be, à la communauté française de Belgique.

En plus des 100 personnes présentes réellement dans la salle (au théâtre 140), 100 personnes ont pu assister à cette conférence, en direct, par internet. Elles ont au l'occasion d'interagir avec le conférencier par chat.

Voici comment nous avons procédé.

1. Test de le connection internet

Deux semaines avant l'événement, j'ai été testé la connexion internet disponible sur le lieu de la conférence. Muni d'un portable, je me suis connecté au réseau installé sur place. Il s'agissait d'une connexion internet cable TV. Le site www.speedtest.net permet de tester la qualité de la connexion. Le plus important pour une diffusion en direct, c'est la qualité de la connexion montante vers le fournisseur, à savoir la vitesse d'upload. Elle est mesurée en kilobits par seconde (kbps).

Sur le site speedtest.net, vous pouvez choisir vers quel destination tester la connexion. Si votre fournisseur de streaming est aux états unis vous pouvez tester vers une destination proche. Dans mon cas il s'agit d'un fournisseur allemand, j'ai donc testé vers Francfort.

La connexion cable était très bonne : 8000kbps en download et 900kbps en upload.

Ayant déjà réalisé des tests de compression, une vidéo de qualité "VHS" (youtube) demande environ 250 kbps pour la vidéo et 50 kbps pour l'audio. Ce qui fait un total de 300 kbps pour la transmission. Ayant de la marge (900 kbps dispo), j'ai configuré le programme de transmission pour envoyer deux fois le flux sur deux serveurs différents en cas de problème. Ce qui fait un total de 600 kbps en upload. Il reste de la marge sur la connexion au cas où. De plus cela permet d'ouvrir un browser pour tester le flux tel que vu par les spectateurs sans compromettre l'émission.Il ne faut cependant pas le laisser tourner tout le temps, la compression bouffant déjà énormément.

Vous devez également tester si le site est muni d'un pare feu. Si vous parvenez à voir directement une vidéo sur ustream.tv et à vous connecter sur leur système de chat, c'est probablement ok. Il vaut mieux désactiver tout pare feu sur le site de diffusion.

Un dernier test de durée devrait idéalement être effectué en faisant une diffusion test d'au moins 30 minutes. Certains providers diminuant automatiquement la bande passante après un certain temps. Assurez vous également que le site n'est pas près d'atteindre son quota mensuel.

2. Compte de streaming chez un fournisseur

Afin de diffuser votre flux, il vous faut un fournisseur capable de distribuer votre flux unique à plusieurs personnes à la fois. Je voulais un système qui ne demande pas de plugin particulier pour les visiteurs. Le seul système qui fonctionne à l'heure actuelle (fin 2008) c'est flash. La solution consiste à trouver un fournisseur qui propose un compte flash media server live.
J'avais d'abord pensé utiliser uniquement un service gratuit (justin.tv ou mogulus.com) mais j'ai eu peur qu'ils ne soient pas à la hauteur. Vous verrez plus loin si j'ai eu raison ou pas.

Je me suis tourné vers www.interlake.net qui propose des comptes à 90€ par mois pour 100gb de bande passante. Ce sont les moins chers que j'ai trouvé en Europe. Il existe aussi uvault.com et serverroom.us, ainsi que streamzilla.com. A vous de voir et de comparer.

Pour calculer la bande passante nécessaire, utilisez la formule suivante :

nombre de visiteurs x nombre de secondes x bande passante en kbps / 8 000 0000

Dans notre cas : 200 visiteurs x 7200 secondes x 220 kbps / 8 000 000 = 39,5 Gigas

Ce sont bien des gigaoctets, pas des gigabits. On compte toujours en Go la bande passante nécessaire.

Le fournisseur proposant un plan avec un forfait de 100gb, c'était ok, on pouvait d'ailleurs avoir plus de visiteurs que prévu.

Renseignement pris chez mogulus, ils assurent une diffusion sans problème jusqu'à 10.000 visiteurs simultanés. Cela me semble énorme, surtout pour un service gratuit. Me disant que "si c'est trop beau pour être vrai, c'est que ça ne l'est pas". C'est pour cela que j'ai finalement pris mogulus comme backup et interlake comme solution principale.
Cela dit, je suis en contact avec les développeurs de mogulus, et je peux dire que leur service est bien suivi (mieux que certains services commerciaux). Mogulus est à suivre de très près. Pour être sûr de la qualité du service. Je recommanderais interlake pour l'instant. "Future will tell"

3. Configuration du pc de diffusion

Si vous voulez une diffusion de qualité, avec un encodeur gratuit, il n'y a pas 36.000 solutions. Vous devez utiliser l'encoder d'adobe, disponible ici : http://www.adobe.com/products/flashmediaserver/flashmediaencoder/

Il n'est disponible que pour windows xp. Il vous faut un pc récent pour assurer un encodage en temps réel.

La configuration du soft est assez facile. vous sélectionnez l'entrée vidéo disponible sur le pc, le codec, la taille d'image, et la même chose pour le son. Ensuite vous encodez le serveur fourni par votre provider. Mogulus propose des explications dans leur guide. Si vous prenez un compte payant quelque part, vous recevrez un mail avec les infos. Il s'agit du serveur rtmp:// ainsi que le nom du flux.

Certains services vous proposeront d'utiliser directement votre navigateur pour encoder la vidéo. Cela marche aussi (pour autant que votre caméra soit reconnue par le plugin flash) mais le codec est nettement moins bon (sorenson) et la qualité d'image sera nettement inférieure. Vous n'aurez que peu de réglages sur la taille d'image et de son.

Voici les réglages utilisés sans flash media encoder :

- entrée image DV
- codec image : VP6
- débit image : 250 kbps
- taille image : 360 x 210 (en 16/9 s'il vous plait!)

- entrée son DV
- codec son AAC
- échantillonnage son : 44.1 khz (pour une conférence, c'est vraiment le son le plus important)
- débit son : 56 kbps

J'ai également configuré un autoadjust avec un buffer de 5 secondes, qui permet de compenser des pertes de débit réseau momentanés.

4. Connection de la caméra ou de la source vidéo

Il n'y a pas de secret, la qualité de la caméra est prépondérante. Nous avons utilisé une PD 150 de sony prêtée par la cinémathèque de la communauté française (nos collègues). Cette caméra est une tri-ccd qui dispose d'entrées XLR (un standard dans le son "pro"). La caméra reçoit en direct le son de la table de mixage de la salle. De cette façon on dispose du son mixé par l'ingénieur du son de la salle et pas d'un son micro caméra qui serait bien plus "pourri".

La caméra est placée sur un pied et reliée au PC par un câble firewire. Le son et l'image sont de ce fait parfaitement synchro vu que c'est la caméra qui numérise. Une solution moins satisfaisante mais moins cher consiste à utiliser une webcam et un bon micro et laisser l'ordi faire la synchro (bonne chance...)

Résumé :

- son salle -> cable XLR -> caméra DV PD150
- image caméra (en manuel s.v.p)
- caméra -> câble firewire -> PC
- PC -> flash media encoder
- flash media encoder -> connexion internet du lieu -> fournisseur (mogulus / interlake)
- fournisseur -> clients

(ouf)

Et c'est sans compter que sur le lieu de tournage, le signal passait par un modem wifi puis un routeur avant d'arriver au modem câble :-)

Résultat : 100 personnes ont pu assister à la conférence, en direct, depuis leur navigateur web, sans rien installer. Ils on pu poser leurs questions sur un chat. La conférence a été enregistrée et est disponible ici : http://www.mogulus.com/yapaka/ondemand/pla_339952814454013515?initthumbu...

N'hésitez pas à me contacter si vous avez envie de partager vos expériences. La diffusion de vidéos en direct est encore fragile, mais en faisant attention à toutes les étapes, il y a moyen d'avoir un résultat professionnel à coût "service public" :-)

Ceci pose également la question de l'avenir de la télévision traditionnelle. Un rapide calcul indique que cela coûte 10 eurocents par personne pour diffuser une émission de 2 heures. Je ne sais pas combien cela coûte en télé traditionnelle, mais j'imagine que c'est beaucoup plus. A bon entendeur ...

Tous mes liens sur le sujet ici: http://delicious.com/onclephilippe/streaming

J'y ajoute régulièrement de nouvelles choses

 

L'anniversaire du premier programme informatique mémorisé et exécuté

Qui le sait encore, mais on fête ce mois-ci les 60 ans du premier programme informatique.

Un programme stocké en utilisant la rémanence d'un tube cathodique de radar. Une révolution à l'époque : en plus de stocker les données d'un problème, on stocke également le programme qui doit être exécuté dans la même mémoire.

C'est un peu comme le dossier "mes documents" et "program files" qui sont sur le même disque dur.

La mémoire de ce premier computer était de 1024 bits (une paille!)

Une révolution qui allait permettre à l'informatique moderne de naître.

http://www.digital60.org/

Ci-dessous la comparaison entre ce premier computer et celui d'un téléphone mobile classique avec processeur arm :

The Baby Modern computer embedded in a phone

(ARM 11)
Size: 5.23m x 2.26 m 1mm x 1.5mm
Weight: 1 tonne
Power Consumption: 3500W 99mW (0.099W)
Speed: 100 kHz (100,000 per second) 320 MHz (320,000,000 per second)
Data Width: 32 32
Storage Capacity: 1024 bits 128,000 bits[1]
Cost: About £4,000,000
Number Produced: 1 > 1,000,000,000

La singularité n'est peut être pas si loin que ça...

DBpedia, une base de données à partir de wikipedia

Vous vous souvenez de la scène du film AI (Intelligence Artificielle) où Jude Law fait une recherche avec le docteur Know ? He bien on en est presque arrivé là. Je suis tombé sur un projet extraordinaire : dbpedia (http://wiki.dbpedia.org/About) Le principe : scanner wikipedia et en extirper toutes les données présentes sous forme de tableau. Les données sont ensuite disponibles et questionnables avec des requêtes sparql (une espèce de langage sql). Voici par exemple une requête qui demande tous les films dans lesquels Tom Cruise a joué avant 2000 : http://dbpedia.org/snorql/?query=SELECT+%3Fsubject+%3Flabel+%3Freleased+%3Fabstract+WHERE+%7B%0D%0A%3Fsubject+rdf%3Atype+%3Chttp%3A%2F%2Fdbpedia.org%2Fclass%2Fyago%2FMotionPictureFilm103789400%3E.%0D%... Une autre qui donne toutes les compagnies aériennes dans le monde: http://dbpedia.org/snorql/?query=SELECT+*+WHERE+%7B%0D%0A%3Fsubject+dbpedia2%3Awordnet_type+%3Chttp%3A%2F%2Fwww.w3.org%2F2006%2F03%2Fwn%2Fwn20%2Finstances%2Fsynset-airline-noun-2%3E.%0D%0A%3Fsubject+r... Pfiu...

About penises and envy

Tim O'Reilly writes great articles. A key one has been written again. It's titled "MicroHoo: corporate penis envy?" and can be read here : http://radar.oreilly.com/archives/2008/05/microhoo-corporate-penis-envy.html It's about what microsoft should do (focus on filling the gaps in the internet operating system instead on fighting with google on search, don't reinvent ls and cat on the web os that is taking shape in front of us) I'd suggest also to read this : http://www.oreillynet.com/pub/wlg/1262 Sounds cryptic? It's the future, my friend.

John Carmack and simplicity

I've re-read John Carmack's famous .plan file (http://www.bluesnews.com/archives/carmack122396.html). It compares Direct3D to openGL in 1996. It was the beginning of hardware accelerated 3D graphic cards. John explains the differences between the simple, procedural openGl glBegin (GL_TRIANGLES); glVertex (0,0,0); glVertex (1,1,0); glVertex (2,0,0); glEnd (); and the ugly Direct3D (incomplete!) equivalent v = &buffer.vertexes[0]; v->x = 0; v->y = 0; v->z = 0; v++; v->x = 1; v->y = 1; v->z = 0; v++; v->x = 2; v->y = 0; v->z = 0; c = &buffer.commands; c->operation = DRAW_TRIANGLE; c->vertexes[0] = 0; c->vertexes[1] = 1; c->vertexes[2] = 2; IssueExecuteBuffer (buffer); You read this, and you feel confortable you have bet on the right horses (Drupal for example, or jquery, or extJs in the webapplication realm) and you stay away of the ugly beasts (I won't cite them, they will recognize themselves). KISS