MediaPLayer pas du son

Fermé
Signaler
Messages postés
59
Date d'inscription
mardi 23 avril 2019
Statut
Membre
Dernière intervention
16 septembre 2019
-
Bonjour,

je voulais lire une vidéo avec du son au même temps . En effet j'ai utilisé l'openCV2 et le ffpyplayer librairies . Du coup j'arrive à bien lire les image de la vidéo mais malheureusement pas du son .

ci dessus le code :
def PlayVideo(age):
   print("toto");
   birthyear = datetime.datetime.now().year - age
   videoFilePath = f"media/video/decades/{int(round(birthyear, -1))}.mp4"
   print(videoFilePath)
   vid = cv2.VideoCapture(videoFilePath)
   player = MediaPlayer(videoFilePath)
   bg = cv2.cvtColor(GetDisplayImgContent(), cv2.COLOR_BGRA2BGR)
   # Check if camera opened successfully 
   if vid.isOpened():
      print("in vidopen")
      # Read until video is completed 
      while vid.isOpened():
         #print("in while")
         # Capture frame-by-frame 
         ret, frame = vid.read()
         audio_frame, val = player.get_frame()
         #print(audio_frame,val)
         #frame_seq = 749
         #gray = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
         if ret == True:
            #print("img OK")
            origVidImgHeight, origVidImgWidth = frame.shape[:2]

            xVidPosition = int((screenW / 3)*2)
            yVidPosition = int((screenH / 4)*3)

            x1 = int(xVidPosition - (origVidImgWidth / 4))
            x2 = int(xVidPosition + (origVidImgWidth / 4))
            y1 = int(yVidPosition - (origVidImgHeight / 5))
            y2 = int(yVidPosition + (origVidImgHeight / 5))
            videoWidth = int(x2 - x1)
            videoHeigth = int(y2 - y1)

            frame=cv2.resize(frame, (videoWidth, videoHeigth)) 
            bg[y1:y2, x1:x2] = frame

            #cv2.imshow('Frame', bg) 
            
            #Display the resulting bg
            if cv2.waitKey(28) & 0xFF == ord("q"):
               break
            SetDisplayImg(bg, "")
            if val != 'eof' and audio_frame is not None:
               #audio
               img, t = audio_frame
               print (t, img.get_pixel_format(), img.get_buffer_size())
            #playsound(videoFilePath)
            # Display the resulting frame 
            #cv2.imshow('Frame', bg) 
            #print("SetDisplayImg ok")
         else:
            break
      vid.release()
      cv2.destroyAllWindows()


le retour de play audio:

39.9 rgb24 (2764800, 0, 0, 0)
39.93333333333334 rgb24 (2764800, 0, 0, 0)
39.96666666666667 rgb24 (2764800, 0, 0, 0)
40.0 rgb24 (2764800, 0, 0, 0)
40.03333333333334 rgb24 (2764800, 0, 0, 0)
40.06666666666667 rgb24 (2764800, 0, 0, 0)
40.1 rgb24 (2764800, 0, 0, 0)
40.13333333333333 rgb24 (2764800, 0, 0, 0)
40.16666666666667 rgb24 (2764800, 0, 0, 0)
40.2 rgb24 (2764800, 0, 0, 0)
40.233333333333334 rgb24 (2764800, 0, 0, 0)
40.266666666666666 rgb24 (2764800, 0, 0, 0)
40.300000000000004 rgb24 (2764800, 0, 0, 0)
40.333333333333336 rgb24 (2764800, 0, 0, 0)
40.36666666666667 rgb24 (2764800, 0, 0, 0)


Avez-vous une idée svp?

Je vous remercie par avance de vos retours.
A voir également: