VideoNow, la vidéo (moche) sur un CD Audio

Au début des années 2000, Hasbro a sorti un truc assez particulier : VideoNow. Il s’agissait de CD contenant de la vidéo et destinés aux enfants, avec un lecteur à bas prix associé. Le format est assez atypique : un CD Audio d’un diamètre bizarre (10,8 cm ou 85 mm), de la vidéo codée dans la partie audio et… la possibilité de ripper le contenu.
original_137447_tfRRRffHYdAq_FiMG7GRxabPJ

On commence par le point qui peut poser des soucis : lire le CD. Comme il a un diamètre qui n’est pas standard, il faut un lecteur adapté. Un lecteur slot-in ne convient évidemment pas, le CD risque de bouger. Les lecteurs classiques, 5,25 pouces, ne sont pas non plus adaptés : les tiroirs ont des guides pour les CD de 12 cm et les 8 cm, mais rarement entre les deux. Le mieux est de trouver un lecteur slim à tiroir, ils ont généralement un moyeu central pour fixer le CD.

J’ai testé avec deux VideoNow. Le premier est un film en noir et blanc, la première génération travaille en monochrome, avec une image en 40 x 80 de ce que j’ai pu voir. Il est possible de ripper le contenu sous Mac OS X, même si j’ai du aller bidouiller dans du code.

Première chose, récupérer le contenu, par exemple avec iTunes. Simple à faire, il suffit de faire un fichier WAV classique (44 kHz, 16 bits).

Seconde étape, compiler les différentes parties de PVDTools, ce sont de simples fichiers en C classique, ça marche sans soucis sous OS X. Il faut aussi renommer le fichier WAV à ripper sous le nom input.wav.

D’abord, on supprime le header, ensuite on sépare les données.

gcc strip.c -o strip
./strip
gcc split16.c -o strip16
./split16
gcc split8.c -o strip8
./split8
gcc addh.c -o addh
./addh

On obtient des fichiers RAW et un fichier WAV (input-right2) qui contient le son.

Ensuite, j’ai du modifier xtract.c (voici le code). Le fichier original ne sortait pas un résultat correct dans mon cas, donc j’ai du modifier quelques valeurs.

gcc xtract.c -o xtract
./xtract

On obtient des fichiers PGM, que l’on va convertir en JPG.

brew install netpbm

Ensuite, un simple script bash va convertir le tout (à adapter en fonction du nombre de fichiers).

#!/bin/bash

for ((i=1 ; 3744 - $i ; i++))
do pnmtojpeg $i.pgm > $i.jpg
done
exit 0

Enfin, on peut passer le tout dans un fichier vidéo. Renommer séquentiellement proprement (par exemple via Yosemite) et taper la commande suivante.

ls *.jpg > ../stills.txt

Ensuite, on passe dans mencoder et on fait une vidéo. Ici en MPG4, à 1 mégabit/s (pour le test) en redimensionnant l’image en 80×80 et à 5 images/s.

brew install mplayer
sudo mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1000000 -vf scale=80:80 -of lavf -o tlcam.avi -mf type=jpeg:fps=15 mf://@../stills.txt

Ouvrez le tout avec QuickTime 7, sauver dans un conteneur MP4.
Enfin, ouvrez avec Subler et sauvez le tout avec l’audio (préalablement converti avec QuickTime ou autre).

A la fin, ça donne ça.

C'est... moche

C’est… moche

Le second est en couleur, c’est un épisode de Jimmy Neutron. Le codage en couleur est différent de celui utilisé en noir et blanc, et quelqu’un a développé un outil pour le décoder. Il faut VirtualDub, le fichier WAV extrait du CD et un fichier AVI (le contenu importe peu) de la longueur (au moins) du fichier à extraire. Ca ne fonctionne que sous Windows, et le résultat est assez moyen (et sans le son). Attention, la longueur de la vidéo est plus courte que le fichier audio (je n’ai pas trouvé le rapport exact). Les versions couleurs sont lues en x2, donc on met moins de vidéos sur le même disque (et donc les disques sont plus grands…). Le décodage manuel est nettement plus compliqué, il y a de l’entrelacement, un codage bizarre des couleurs, etc.

En sortie, on a soit une image en 144 x 80, soit en 216 x 160 (extrapolée). C’est assez moche dans les deux cas.

En natif (144 x 80)

En natif (144 x 80)


Extrapolé

Extrapolé

Je ne vous mets pas la vidéo, le contenu est détecté par Viacom (ils ont de bons filtres) et interdits à la diffusion.

A noter qu’il est possible d’encoder ses propres vidéos (je n’ai pas essayé, faute de lecteur) manuellement ou avec un logiciel édité par Hasbro et qu’une sorte de DRM rudimentaire et idiot était en place : comme le lecteur n’acceptait que les CD de 10,8 cm, les CD devaient contenir plus de 15 minutes de vidéos, pour éviter que des gens gravent des films sur des CD de 8 cm.