[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.python

Windows AVIFile problems

christopher.saunter

1/25/2008 12:05:00 PM

Hi All,

I'm trying to access individual video frames of an AVI file from within
Python 2.4 or 2.5 under Windows XP.

I have found this example code here for that does exactly what I want,
using the windows avifile.dll but I am unable to find the AVIFile.h
header...

http://mail.python.org/pipermail/image-sig/2002-February/0...

An alternative is to call into avifile.dll dynamically using ctypes,
however under both Python 2.4 and 2.5 the following error happens:

>>> from ctypes import *
>>> windll.AVIFile

Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
windll.AVIFile
File "C:\Python25\lib\ctypes\__init__.py", line 415, in __getattr__
dll = self._dlltype(name)
File "C:\Python25\lib\ctypes\__init__.py", line 340, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 193] %1 is not a valid Win32 application

or

WinDLL('c:/windows/system/AVIFILE.DLL') # same for .../system32/AVI...
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
windll.AVIFile
File "C:\Python25\lib\ctypes\__init__.py", line 415, in __getattr__
dll = self._dlltype(name)
File "C:\Python25\lib\ctypes\__init__.py", line 340, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 193] %1 is not a valid Win32 application

This suggests that the dll is corrupt? However if I download
and run the exe's from this example of a VB program calling
the DLL, they work:
http://www.shrinkwrapvb.com/avihelp/a...

I'm open to suggestions about the specific problems above
or other ways of getting at the frames. I've tried pymedia
but it also has issues.

Regards
Chris Saunter
3 Answers

Thomas Heller

1/25/2008 1:00:00 PM

0

c d saunter schrieb:
> Hi All,
>
> I'm trying to access individual video frames of an AVI file from within
> Python 2.4 or 2.5 under Windows XP.
>
> I have found this example code here for that does exactly what I want,
> using the windows avifile.dll but I am unable to find the AVIFile.h
> header...
>
> http://mail.python.org/pipermail/image-sig/2002-February/0...
>
> An alternative is to call into avifile.dll dynamically using ctypes,
> however under both Python 2.4 and 2.5 the following error happens:
>
>>>> from ctypes import *
>>>> windll.AVIFile
>
> Traceback (most recent call last):
> File "<pyshell#2>", line 1, in <module>
> windll.AVIFile
> File "C:\Python25\lib\ctypes\__init__.py", line 415, in __getattr__
> dll = self._dlltype(name)
> File "C:\Python25\lib\ctypes\__init__.py", line 340, in __init__
> self._handle = _dlopen(self._name, mode)
> WindowsError: [Error 193] %1 is not a valid Win32 application
>

The dll is not corrupt. It is the 16-bit dll, possibly present for legacy
16-bit support.

You must use the 32-bit dll, it seems it called avifil32.dll.

Also I guess to get the AVIFILE.H header file, you need to install some
MS SDK or the platform sdk.

Thomas

Tim Golden

1/25/2008 1:11:00 PM

0

c d saunter wrote:
> I'm trying to access individual video frames of an AVI file from within
> Python 2.4 or 2.5 under Windows XP.

I thought that the recently-at-1.0 pyglet did that, only I can't
now see it in their docs anywhere. Might be worth asking over
there anyway [1] since it certainly comes close, is a much easier
way of dealing with video images, and seems to have an active
community.

TJG

[1] http://www.p...

christopher.saunter

1/25/2008 2:25:00 PM

0

Thomas Heller (theller@ctypes.org) wrote:
: c d saunter schrieb:
: > Hi All,
: >

: The dll is not corrupt. It is the 16-bit dll, possibly present for legacy
: 16-bit support.

Thomas,
Thanks, that explains a lot.

Regards,
Chris Saunter