Generating video thumbnails seems to be broken in current SVN.

freevo cache --video-thumbs --directory=/freevo/video/thumbtest/

hangs forever, the process (ps axfww) tree looks like this:

...
17184 pts/1    S+     0:00                      \_ /usr/bin/python 
/usr/bin/freevo cache --video-thumbs --directory=/freevo/video/thumbtest/
17186 pts/1    S+     0:00                          \_ python 
/usr/lib/python2.5/site-packages/freevo/helpers/cache.py cache --video-thumbs 
--directory=/freevo/video/thumbtest/
17188 pts/1    S+     0:00                              \_ /usr/bin/python 
/usr/bin/freevo 
--execute=/usr/lib/python2.5/site-packages/freevo/util/videothumb.pyc 
/usr/bin/mplayer /freevo/video/thumbtest/test.avi 
/var/cache/freevo/vfs/freevo/video/thumbtest/test.avi.raw.tmp
17190 pts/1    Sl+    0:00                                  \_ python 
/usr/lib/python2.5/site-packages/freevo/util/videothumb.pyc /usr/bin/mplayer 
/freevo/video/thumbtest/test.avi 
/var/cache/freevo/vfs/freevo/video/thumbtest/test.avi.raw.tmp
...
17193 pts/1    S+     0:00 /usr/bin/mplayer -vo png:z=1:outdir=/tmp -ao null 
-frames 8 -ss 211 -zoom /freevo/video/thumbtest/test.avi

When I interrupt "freevo cache ..." with control-C, the freevo process(es)
stop, but the mplayer process still hangs in the background (also note
that the parent of the process now is init, not python/freevo).

The videothumb-0.log file contains the following entries (debugging
enabled):

2009-05-14 19:08:00,894 DEBUG    encodingcore.py (406): 
source='/freevo/video/thumbtest/test.avi'
2009-05-14 19:08:00,895 DEBUG    encodingcore.py (412): Video length is 422.0
2009-05-14 19:08:00,896 DEBUG    encodingcore.py (927): 
CommandThread.__init__(parent=<encodingcore.EncodingJob instance at 0x84b6f2c>, 
command=['/usr/bin/mplayer', '-vo', 'png:z=1:outdir=/tmp', '-ao', 'null', 
'-frames', '8', '-ss', '211', '-zoom', '/freevo/video/thumbtest/test.avi'], 
updatefunc=None, finalfunc=<bound method EncodingJob._videothumb_parse of 
<encodingcore.EncodingJob instance at 0x84b6f2c>>, flushbuffer=0, 
data='data.png', lock=None)
2009-05-14 19:08:00,898 DEBUG    encodingcore.py (940): /usr/bin/mplayer -vo 
png:z=1:outdir=/tmp -ao null -frames 8 -ss 211 -zoom 
/freevo/video/thumbtest/test.avi
2009-05-14 19:08:00,929 DEBUG    encodingcore.py (942): /usr/bin/mplayer thread 
running with PID 17192
Traceback (most recent call last):
  File "/usr/lib/python2.5/site-packages/freevo/util/videothumb.py", line 143, 
in <module>
    encjob._wait()
  File "/usr/lib/python2.5/site-packages/freevo/encodingcore.py", line 916, in 
_wait
    raise EncodingError('thread still running')
encodingcore.EncodingError: thread still running
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.5/threading.py", line 486, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.5/site-packages/freevo/encodingcore.py", line 947, in 
run
    line = output.readline().strip()
IOError: [Errno 4] Interrupted system call

I'm running the current kaa SVN (r3981) and REL-1_8_4 SVN (r11502)
on a Debian lenny box, using mplayer SVN-r26940 from debian-multimedia.org.

One issue is that this mplayer version doesn't support the "outdir=..."
option in the png video-output driver. Currently I'm using the the
following hack to get the thumbnails working again (but I don't know
if the os.chdir() has any negative side-effects on other parts):

--- freevo/src/encodingcore.py  (revision 11502)
+++ freevo/src/encodingcore.py  (working copy)
@@ -464,12 +464,13 @@
                 self.length = 0
 
         position = str(int(self.length / 2.0))
-        arguments = [ '-vo', 'png:z=1:outdir=/tmp', '-ao', 'null', '-frames', 
'8', '-ss', position, '-zoom' ]
+        arguments = [ '-vo', 'png:z=1', '-ao', 'null', '-frames', '8', '-ss', 
position, '-zoom' ]
         if self.titlenum:
             arguments += [ '-dvd-device', self.source, 'dvd://%s' % 
self.titlenum ]
         else:
             arguments += [ self.source ]
 
+        os.chdir('/tmp')
         self._run(mplayer, arguments, self._videothumb_parse, None, 0, 
'data.png')

The other issue is freevo not recognizing the mplayer error. If I enter
"mplayer -vo png:z=1:outdir=/tmp ..." on the command line I get an
error (telling me that outdir is not supported) and mplayer crashes.
I think freevo should somehow be able to detect this error/crash
and not just hang forever. Maybe some kind of race condition?

so long,

Hias

------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image 
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
Freevo-devel mailing list
Freevo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to