OpenCV Python - 从文件播放视频


VideoCapture ()函数还可以从视频文件而不是摄像机中检索帧。因此,我们仅将摄像机索引替换为要在 OpenCV 窗口上播放的视频文件的名称。

video=cv2.VideoCapture(file)

虽然这应该足以开始渲染视频文件,如果它伴随着声音。声音不会一起播放。为此,您需要安装 ffpyplayer 模块。

FFPy播放器

FFPyPlayer是 FFmpeg 库的 python 绑定,用于播放和写入媒体文件。要安装,请使用以下命令使用 pip installer 实用程序。

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()