Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Problemas con Pyglet en una Raspberry PI
#1
Buenas tardes,
   tengo un programa hecho con python que funciona correctamente en Windows. Necesito hacerlo funcionar con una Raspberry PI 3. El programa muestra un video en una parte de la pantalla. Para reproducir el video usa Pyglet que se apoya a AVBin. AVbin no está disponible para Raspberry (arquitectura Arm). La última versión de Pyglet se apoya a ffMpeg pero con Raspberry no funciona. El error que aparece es:

ffmpeg_free_packet(self._packet)
AttributeError: 'FFmpegSource' object has no attribute '_packet'

¿Pueden ayudarme?

Gabriel
Responder
#2
Hola Gabriel. No tengo y nunca trabajé con una Raspberry, pero parece que alguien más ha tenido este error: https://github.com/pvcraven/arcade/issues/257. No puedo hacer más que acercarte este enlace y recomendarte seguir algunas de las pautas que se sugieren allí.

Saludos
Responder
#3
Hola Francisco, gracias por tu respuesta. Si, ya había visto las discusión pero a un cierto punto dejan de escribirse sin una respuesta. Necesito encontrar una solución para mostrar estos videos cortos (son 7 de 30 segundos cada uno y sin audio) con pygame y raspberry. He buscado otras librerías que puedan ser incorporadas a pygame pero no he encontrado nada.
Las posibilidades que he pensado son estas:

1. Hacer un downgrade de pygame a la 1.9.2 (ahora está instalada la 1.9.3) y usar el módulo "Movie" nativo de pygame.
2. Encontrar otra librería vídeo que permita exportar los frame del vídeo en una superficie de pygame
3. Hacer algo parecido a las gif animadas (los videos son cortos y sin audio) con pygame.
4. Usar una PC con linux en lugar de la raspberry (solución bastante complicada)

Es un problema serio y necesito encontrar una solución urgentemente. Gracias por tu paciencia Smile
Gabriel
Responder
#4
Hola Gabriel. Si los videos son cortos y sin audio, tal vez tengas más suerte, como vos mismo sugerís, convirtiéndolos a animaciones GIF y reproducirlos en ese formato.
Responder
#5
Hola Francisco, al final hice la animación tipo GIF. Funciona! Busca todas las imágenes de una carpeta y las muestra en secuencia en base al nombre. Si encuentra algún error durante el load de una imagen salta simplemente ese frame. Este es el código de la clase. Para crear las imágenes desde un video usé ffmpeg.
Código:
class PseudoVideo():
    def __init__(self, percorso, w,h, divisore):
        elenco_files = os.listdir(percorso)
        elenco_files.sort()
        self.imgs = []
        self.divisore = divisore
        self.contatore = 0
        for singolo_file in elenco_files:
            try:
                temp_img = pygame.image.load(percorso + "/" + singolo_file).convert_alpha()
                self.imgs.append(pygame.transform.scale(temp_img,(w,h)))

            except:
                pass
        self.indice = 0
       
    def view (self, backsurface,x,y):
        self.contatore = (self.contatore + 1) % self.divisore
        if self.contatore == 0:
            try:
                self.indice = (self.indice + 1) % len(self.imgs)
                backsurface.blit(self.imgs[self.indice],(x,y))
            except:
                pass
Responder
#6
Muy bueno Gabriel. Gracias por aportarlo Wink

Saludos
Responder
#7
De nada Franciesco. De cualquier manera, ahora que tengo más tiempo quisiera encontrar una solución definitiva al tema de los videos en pygame.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)