Python-使用音频播放视频(使用OpenCV?)

Python-使用音频播放视频(使用OpenCV?),python,opencv,ffmpeg,Python,Opencv,Ffmpeg,这可能是一个愚蠢的问题,我已经搜索了这个问题,但没有找到一个简单的答案: 您可以使用OpenCV和FFMPEG播放带音频的视频吗 如果没有,最好的方法是什么?这看起来很简单,但我对Python如此陌生,以至于我不知道该期待什么/搜索什么 谢谢大家! 使用ffpyplayer处理音频部分 import cv2 import numpy as np #ffpyplayer for playing audio from ffpyplayer.player import MediaPlayer vide

这可能是一个愚蠢的问题,我已经搜索了这个问题,但没有找到一个简单的答案:

您可以使用OpenCV和FFMPEG播放带音频的视频吗

如果没有,最好的方法是什么?这看起来很简单,但我对Python如此陌生,以至于我不知道该期待什么/搜索什么


谢谢大家!

使用ffpyplayer处理音频部分

import cv2
import numpy as np
#ffpyplayer for playing audio
from ffpyplayer.player import MediaPlayer
video_path="../L1/images/Godwin.mp4"
def PlayVideo(video_path):
    video=cv2.VideoCapture(video_path)
    player = MediaPlayer(video_path)
    while True:
        grabbed, frame=video.read()
        audio_frame, val = player.get_frame()
        if not grabbed:
            print("End of video")
            break
        if cv2.waitKey(28) & 0xFF == ord("q"):
            break
        cv2.imshow("Video", frame)
        if val != 'eof' and audio_frame is not None:
            #audio
            img, t = audio_frame
    video.release()
    cv2.destroyAllWindows()
PlayVideo(video_path)

示例代码可以正常工作,但您需要根据视频的速度播放cv2.waitKey(28)。

Hi@hoothoot,我看到没有人回答您的问题,但您是否曾经提出过解决问题的方法?谢谢,我试过这段代码,但我在mac上听不到任何声音…很抱歉,我现在才意识到我的源代码没有音频。非常好用,谢谢!回答得好。不必猜测waitKey的毫秒睡眠值,您可以从视频的FPS计算它:
video=cv2.VideoCapture(video\u path)
FPS=video.get(cv2.CAP\u PROP\u FPS)
sleep\u ms=int(numpy.round((1/FPS)*1000))