VideoNow PVD Reverse Engineering
September 7 @
Well,
these past few days have been busy, but not in the PVD department. Our site was Slashdotted
which was a massive honor to me. But, I
forgot to place my email address in the page, so with the exception of the two
emails, it was largely useless to the project.
I will be rereading the comments left and make a FAQ in the next few
days. If you are interested in the
project, either programming or disassembling the stream, email me at mzocher@wsu.edu. I did write a list of the theoretical steps
to encoding the video, which need to be made into a program or plugin:
VIDEO
- Drop resolution from X&y -> 80x80
- Color -> 4bit grey
- x fps
-> 15 fps
- Convert Frame to hex
- Hex + header -> mono audio
stream
AUDIO
- 16 bit stereo -> 8 bit mono
- 8 bit mono + timing -> 8 bit
stereo
- 8 bit stereo -> 16 bit mono
audio stream
MULTIPLEX both
I think most of the video work can
be done with a VirtualDub plugin,
since then Virtualdub can handle the file i/o and codec info.
Then, things can be frameserved to a little
program.
There’s a contest at Claire’s to win
one of 200 VideoNow players, if you want to see a
player but don’t want to drop $50 for it.
Oh, and John sent me a link to http://www.zvue.com a player that will come out in December. It’s not related to this project, and it
looks like vaporware, but it could be an interesting toy if released.
September 2 @
Ok, here is the link for the
video sample. The video is DivX5, and
about 12 seconds long (160kbytes). After
frame 130 or so, the video becomes corrupt, because the offset between frames
changed. After removing the beginning of
the files, this is what Vance ran:
for i in `seq -f %04g 1 500` ; do dd if=source.wav of=source2.wav bs=5880 skip=1 ; echo $i ; mv source2.wav source.wav ; ( echo -ne "P5\n40 80\n255\n" ; dd if=source.wav bs=3200 count=1 ) > $i.ppm ; convert -geometry 80x80\! $i.ppm $i.ppm ; done
August 28 @
Damn Vance again. He wrote a small script to pull some frames
out, put the PPM header on, convert them to jpeg, and make a movie out of
it. I will post links for both
later. The movie he sent me has corrupt
frames after about 10 seconds, because the offset between frames changed. Next step would be to make a smarter
script/program that reads the data for correct frame start times. Oh, and the timing information in the 8bit
left doesn't seem to match up with anything.
August 27 @
|
Damn, I give the job of PVD
hacking to Vance, and in two hours he has clear sound and has extracted
frames. I was correct believing the audio
was 8bit stereo, however, one channel is pure audio, the other is timing
packets (15 per second). He also
discovered a graphic format called PPM, where graphics are defined by
hexadecimal, making shades of grey. He
stuck the header onto hex from the audio, and came up with pictures. For linux affectionados, here is
what he used: |
|
sox -t wav AUDIOTRACK -t raw -r 44100 -c 1 -s -w -
pick -r | sox -t raw -r 44100 -c 2 -u -b - -t ossdsp
-c 1 /dev/dsp pick -r
August 26 @
Success! I was able to pull a frame out of the video
stream. Here is a picture from the
startup track, and here is a picture from the Spongebob
PVD. Information on the format has been
updated. My next goal will be to write a
program ot parse the stream, so I don't have to rip
it by hand with the hex editor.
August 23 @
The PVD video seems to reside on the
left audio track, as packets. I seperated the audio channels, and am working on extracting
a frame.
August 22 @
My urge to reverse engineer the VideoNow format got too big today. I went to my local Wal-Mart and bought the Spongebob PVD for $7.77.
The PVD came in a standard DVD clamshell case, even though it is
smaller. The disk itself is 85mm in
diameter, 5mm bigger than a standard mini CD.
I took it home and dropped it into my computer, which was a task in
itself, since I had to sit it in the tray just right to play it. The PVD was surprisingly, made up of 10 audio
tracks, some as short at 5 seconds, and others as long as 6 and a half
minutes. I figured it would be a
VCD. The left audio was just pulses, the
right audio was garbled, yet understandable.
This could be fun....
August 21 @
Ok, I saw an awesome kids toy at
Wal-Mart. It's called the VideoNow, made by Hasbro.
It's a black and white portable movie player for kids, costing about
$50. They sell other disks (all from
Nickelodeon) to play in this player, called Personal Video Disks. I want one, but as a starving college
student, that's not possible. I went
home to look up more on this player, but found little about it, as it came to
market in July. I guess I need to
reverse engineer it myself....
About the player and format:
* Converted Audio CD player
* Video is 80x80, with 16 shades of grey, at
15 fps
* Data is stored as audio tracks on the PVDs
* PVDs are 85mm in
diameter
* Video is stored as data packets on the left
audio track.
* Audio is stored on the right side, as 8 bit
stereo. Upon separating the 16 bit mono
to 8 bit stereo, we found the left side to be timing marks (though they don't
match up with the frames), and the right side to be clear audio.
Project goals:
* determine format of video
* Extract a frame
* Make program to extract frames
* Study video headers
* Determine audio format
* Create player to read directly, from PVD
* Make converter to make video compliant
* make program to generate audio files to burn
* Make sure format plays on a real VideoNow
* Create compressed (lossless) format to
distribute files.
Copyrights for Hasbro, VideoNow, Spongebob Squarepants, and Nickelodeon are owned by their respective
companies.
Hasbro does not support me,
and it nor I can be held responsible for any damage to your CD drive or VideoNow by using unsupported media.
Hasbro, don't hate me for
this.
This page has been
accessed times