intonormal / pyffmpeg

Automatically exported from code.google.com/p/pyffmpeg
1 stars 0 forks source link

Out of memory crash #20

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1.Run this code (with a video with enough frames):
import pyffmpeg

stream = pyffmpeg.VideoStream()
stream.open('movie.avi')
for i in xrange(0,752):
    stream.GetFrameNo(i).save('ddr' + str(i) + '.jpg')

What is the expected output? What do you see instead?
All the frames captured as jpg.
Python runs out of memory.

What version of the product are you using? On what operating system?
0.2.1 Windows

Please provide any additional information below.
The garbage collector isn't working for some reason.

Original issue reported on code.google.com by andel...@gmail.com on 16 May 2010 at 2:49

GoogleCodeExporter commented 8 years ago
That is obviously the first time I see that bug with that package.
My opinion is that binary package is now quite old and don not reflect
the current state of the code. And, we shall remove 
this old binary package from the website, and provide a 
new version for it. I may think about  trying to provide 
some built soon myself, but it takes time, and it will depend
on how much available I am this week.

I believe you'd probably should try to get a more recent release of the 
software package. Try the beta release, or even better, if you know to compile 
free
software under windows (if you know to use mingw, and understand how to specify 
path
and environement for a compiler),
 you may get the latest version and compile it on your computer.
(The latest version of the source are actually stored on my git repository :
http://github.com/tranx/pyffmpeg
)

I doubt that the bug is still there in the latest version of the code.

In the meantime, you may also try to call the garbage collector at each 
iteration of
your loop, but it is unlikely that this will fix the problem:

import gc

# ...

for i in xrange(0,752):
    stream.GetFrameNo(i).save('ddr' + str(i) + '.jpg')
    gc.collect()

Once again, I don't think it will work but it is worst trying.

Let me know which solution which solution you opt for :

   1) wait for the new latest binary package.
   2) use current beta package for windows.
   3) compile the latest source on your own.

Original comment by bertrand...@gmail.com on 16 May 2010 at 3:10

GoogleCodeExporter commented 8 years ago
I need to use python 2.4 (I use pymedia), will the latest package work (or even 
install) on python 2.4? I think the current beta package is for python 2.5, and 
if you 
try and install it it will only search for a python 2.5 install.

Original comment by andel...@gmail.com on 18 May 2010 at 12:51