Ver Mensaje Individual
  #6 (permalink)  
Antiguo 16/09/2010, 07:13
GerarLM
 
Fecha de Ingreso: julio-2010
Mensajes: 6
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Ayuda: Generar thumbnails de archivos de video

Hola de nuevo. He solventado de momento el problema de generar los thumbnails.
Lo hice de la manera mas "facil" y por otra parte, la unica que realmente me ha funcionado hasta ahora, como comentaba en el primer mensaje utilice directamente el ffmpeg y su linea de comandos desde el python.
Estoy trabajando bajo Widows7 y ahora, una vez conseguido el thumbnail, se me presenta otro problema.
Mi codigo utiliza la funcion os.system para lanzar el ffmpeg.exe con los parametros y lo hace bien, el problema es que me minimiza el programa original con lo cual no me sirve para nada.
Necesito poder ejecutar desde el python el ffmpeg.exe pero sin que aparezca la cmd, sin que se me minimice mi programa principal y no me pierda el foco, podria bien utilizar una especie de subproceso o la ejecucion en segundo plano o bien (esta idea ya me convence menos) volver a enfocar mi aplicacion inicial una vez acabe el cmd.
Mi prioridad es poder ejecutar en 2º plano y que ni si quiera se vea la consola de comandos pero no he sido capaz, os resumo mis pruebas/errores:

Código:
sacarThumb = """"C:\\Program Files (x86)\\XBMC\\scripts\\Base De Datos\\ffmpeg.exe" -y -ss 423 -i "\\GERAR\\HD_RED_6\\Peliculas\\La Princesa Mononoke\\Movie.mkv" -f mjpeg -vframes 1 -s 720x400 -an "C:/Program Files (x86)/XBMC/scripts/Base De Datos/thumbnail.jpg""""
Si utilizo:

Código:
os.system(sacarThumb)
Ejecuta perfectamente el ffmpeg.exe y consigo el thumbnail PERO se me minimiza la aplicacion principal.


Si utilizo:

Código:
subprocess.Popen([sacarThumb], shell=False)
El log de la aplicacion me devuelve esto:

Código:
13:46:41 T:2904 M:2748325888   ERROR: Exception in python script's onAction
13:46:41 T:2904 M:2748325888  NOTICE: Traceback (most recent call last):
13:46:41 T:2904 M:2748325888  NOTICE:   File "C:\Program Files (x86)\XBMC\scripts\Base De Datos\default.py", line 8461, in onAction
13:46:42 T:2904 M:2748469248  NOTICE: if action == ACTION_PREVIOUS_MENU :
13:46:42 T:2904 M:2748469248  NOTICE:   File "C:\Program Files (x86)\XBMC\scripts\Base De Datos\default.py", line 8874, in onClick
13:46:44 T:2904 M:2748485632  NOTICE: self.Jugar()
13:46:44 T:2904 M:2748485632  NOTICE:   File "C:\Program Files (x86)\XBMC\scripts\Base De Datos\default.py", line 9746, in Jugar
13:46:46 T:2904 M:2748473344  NOTICE: self.pruebaFotograma(ronda)
13:46:46 T:2904 M:2748473344  NOTICE:   File "C:\Program Files (x86)\XBMC\scripts\Base De Datos\default.py", line 6530, in pruebaFotograma
13:46:47 T:2904 M:2748497920  NOTICE: subprocess.Popen([sacarThumb], shell=False)
13:46:47 T:2904 M:2748497920  NOTICE:   File "special:\\xbmc\system\python\python24.zlib\subprocess.py", line 558, in __init__
13:46:47 T:2904 M:2748493824  NOTICE:   File "special:\\xbmc\system\python\python24.zlib\subprocess.py", line 722, in _execute_child
13:46:47 T:2904 M:2748493824  NOTICE: WindowsError
Si utilizo:
Código:
os.popen(sacarThumb)
El log me dice:
Código:
14:47:04 T:1980 M:2464804864   ERROR: CThread::staticThread : Access violation at 0x77498c19: Writing location 0x00000014

Tiene que existir una manera de ejecutar en segundo plano o sin la cmd, pero no lo doy conseguido.
Acepto sugerencias de cualquier tipo.
Muchas gracias.