View Full Version : ConvertToYV12() fails w/ OpenDML (AVI 2.0)


eddified
18th November 2008, 07:19
I'm using avisynth version 2.5.
My avisynth script is thus:
DirectShowSource("MVI_0076.AVI")
ConvertToYV12()

I've used avisynth (and ConvertToYV12()) this way for all of my home videos from my Canon A640, and it works. However, this does NOT work for any the videos taken with my new Canon A470. The error message is (when viewing using windows media player classic):

Unable to download an appropriate decompressor.
When I click "Advanced" to see details about the error, I see
Unable to download an appropriate decompressor. (Error=80040200)
Then when I close the error message, I hear audio but there is no video at all, not even an AVISynth error message.

So I used GSpot Codec Information Appliance version 2.70a to tell me what is different between the videos from my Canon A640 that work with this avisynth script and the videos from the Canon A470 that dont work, and here is the only difference between what videos work and what videos don't work:

DOESNT WORK with ConvertToYV12:
OpenDML (AVI v2.0)
Video: 7.38 MB (99.06%)
Audio: 67.2 KB (0.88%)
AVI Overhead: 4.17 KB (0.05%)

Pic/s: 20.000
Frames/s: 20.000


Works with ConvertToYV12:
AVI v1.0
Video: 89.8 MB (99.37%)
Audio: 542 KB (0.59%)
AVI Overhead: 38.6 KB (0.04%)

Pic/s: 30.000
Frames/s: 30.000

The audio in both videos is exactly the same, and the video codec in both cases is Motion JPEG
And yes, I tried running the offending videos through VirtualDub and it didn't fix it.

Any ideas? If you tell me to use a newer version of avisynth, please post a link to where i can download it.

Thanks

Leak
18th November 2008, 10:12
Could you post a short clip made with your new camera? That would allow people to try and reproduce your problem... :)

kemuri-_9
18th November 2008, 16:31
it sounds like a codec issue, so as you might think they're both using the same codec, the fourCC's could very well be different.
try using a fourCC analyzer on both the working file and the one not working and confirm that the the fourCC's are the same.
and then if they are different, confirm that you have some decoder for the fourCC of the file that's not working.

though we can help better if you post a sample of the video that doesn't work.

eddified
21st November 2008, 03:04
Hi. After some sleuthing, i realized that I've never gotten windows media player classic to work on any of my videos while using convertoyv12(), not even the ones i reported had worked in my original post.

So the question now is, are there ANY codecs that are expected to work with this kind of avisynth script (see below)? :

DirectShowSource("MVI_3949.AVI")
ConvertToYV12()

I will post an example avi file in a minute...

eddified
21st November 2008, 03:21
http://dl.getdropbox.com/u/349947/MVI_3949.AVI

Wilbert
21st November 2008, 21:41
So the question now is, are there ANY codecs that are expected to work with this kind of avisynth script (see below)? :

http://avisynth.org/mediawiki/FAQ_YV12

poisondeathray
21st November 2008, 23:45
I think kemuri-9 is correct; it's a codec issue

For playback in directshow players, and DirectShowSource() in .avs scripts , you need a directshow decoder for mjpg. I used mediainfo to determine the codec. You can install ffdshow and set mjpg to "libavcodec" instead of "disabled."

I think it might already be YV12 colorspace, and it is unecessary to add converttoYV12(). The .avs script worked fine with or without the conversion argument in MPC and vdub encoding to xvid

Gavino
22nd November 2008, 00:03
I think kemuri-9 is correct; it's a codec issue

For playback in directshow players, and DirectShowSource() in .avs scripts , you need a directshow decoder for mjpg.
If it is a codec issue (which I think is likely), it is a YV12 codec that is required.

Read the original post - the error is not coming from DirectShowSource, but from the player. The player never sees the original avi file, it sees the yv12 output by Avisynth.

I think Wilbert is correct in pointing to the YV12 FAQ.

kemuri-_9
22nd November 2008, 01:16
when the pixel_type parameter is used in avisource or directshowsource, it has the decoder directly decode the video into that color space,
which throws an error if the decoder isn't capable of that particular color space (iirc).

if it's not given, it's fed into avs by the decoder's choice that fits one of avs's accepted color spaces (again iirc).

if a player can't accept YV12 input, could try ffdshow's raw video format support (it's the last entry in the codec list), and see how that goes.