Page 1 of 1

.gvp too wmv????

Posted: Mon Jan 16, 2006 9:23 pm
by CANDANeh
Anyone know how to convert a .gvp file (google video file) to another format such as windows media player?

Posted: Mon Jan 16, 2006 10:23 pm
by -Metablade-
The first think you need to know is, there is no such thing as a Google Video stream or format per say.

When you click to see a movie in the Google Video Player, it downloads a tiny text file with file extension GVP. This causes the Google Video Player to launch. It reads the file and starts to download the video via HTTP, just like the a Flash player is doing in the web browser.
The GVP file is just a text file, so you can open it using notepad and find the URL.

Problem is, If you fetch the URL yourself with wget (i.e. no cookies, no javascript, etc) you get a big binary stream. The content-type claims that it is "video/x-msvideo", but sadly it does not play in Windows Media Player.

looking at the header of the file, and the first four bytes are "RIFF". Using a File::Format::RIFF, you can took a look inside it and find that it starts with a LIST of type "goog", which has inside it a chunk of type "GDAT" that is 32 bytes long.

AVICodec is willing to overlook this extra data, but Windows Media Player and WinAmp don't.

Here's what AVICodec sees inside the AVI file:

File : 9.91 MB (9.91 MB), duration: 0:02:34, type: AVI, 1 audio stream(s), quality: 46 %
Video : 7.56 MB, 411 Kbps, 30.0 fps, 480*360 (4:3), divx = OpenDivx v4, Supported
Audio : 2.34 MB, 128 Kbps, 44100 Hz, 2 channels, 0x55 = MPEG Layer-3, Supported

So, there's nothing fancy about the data; it's Divx video and MP3 audio. There's just a litte extra data in there gumming up the works.

Essentially, Google and Microsoft are not buddies.
I did find this, however, so if you are good with Linux, you could use the following script:

GVI2AVI.pl

Update: When you strip out the "goog" list from the front of a GVI file, you get a valid AVI that will play in Windows Media Player and WinAmp. The following script, called gvi2avi will convert a GVI to an AVI:

#!/usr/bin/perl -w

use File::Format::RIFF;

my ( $riff1 ) = File::Format::RIFF->read( \*STDIN );
$riff1->shift();
$riff1->write( \*STDOUT );

An unmodified GVI file (i.e. with the "goog" list intact) will play correctly in VLC.
*****************************

Note:
The author of this script reported that the quality was so horrendous in the conversion that it was not worth it.

Hopefully someone has made or will make a wizywig for this, but I have yet to find it.

Good luck!

Thanks

Posted: Mon Jan 16, 2006 11:08 pm
by CANDANeh
At least I learned why trouble converting, thanks "Meta".
Why can`t Google and Microsoft be friends, they re both yet soooo young :lol:

Re: Thanks

Posted: Mon Jan 16, 2006 11:20 pm
by -Metablade-
CANDANeh wrote:At least I learned why trouble converting, thanks "Meta".
Why can`t Google and Microsoft be friends, they re both yet soooo young :lol:
Simple!
Image

Image