OpenCV Python 从文件播放视频
VideoCapture() 函数可以从视频文件中检索帧,而不是摄像头。因此,我们只需要用视频文件的名称替换摄像头索引,就可以在OpenCV窗口上播放视频。
video=cv2.VideoCapture(file)
尽管这已足以开始渲染视频文件,但如果伴有声音,则声音将不会播放。为此,您需要安装ffpyplayer模块。
FFPyPlayer
FFPyPlayer 是用于播放和写入媒体文件的FFmpeg库的Python绑定。要安装,请使用pip安装工具,使用以下命令:
pip3 install ffpyplayer
在该模块中,MediaPlayer对象的 get_frame() 方法返回每个从视频文件中读取的帧所播放的音频帧。
以下是播放视频文件及其音频的完整代码:
import cv2
from ffpyplayer.player import MediaPlayer
file="video.mp4"
video=cv2.VideoCapture(file)
player = MediaPlayer(file)
while True:
ret, frame=video.read()
audio_frame, val = player.get_frame()
if not ret:
print("End of video")
break
if cv2.waitKey(1) == 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()