如何在jupyter笔记本上用python opencv以正常速度播放mp4?

4 人关注

有什么方法可以让我在jupyter笔记本上用python opencv播放mp4视频,速度与实际文件相同?
当我制作.py文件并使用cv2.imshow()时,速度是正常的,但当我在jupyter笔记本上尝试下面的代码时,它变得非常慢。
My code:

import cv2
import matplotlib.pyplot as plt
from IPython import display
%matplotlib inline
cap = cv2.VideoCapture('video.mp4')
while(cap.isOpened()):
        ret, frame = cap.read()
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
        plt.imshow(frame)
        display.clear_output(wait=True)
        display.display(plt.gcf())
    except KeyboardInterrupt:
        cap.release()
    
python
opencv
matplotlib
jupyter-notebook
Kazuya Hatta
Kazuya Hatta
发布于 2018-02-27
1 个回答
sgt pepper
sgt pepper
发布于 2019-08-20
已采纳
0 人赞同

根据我的经验,即使你在Jupyter笔记本中工作,也最好使用OpenCV的显示函数。这可以像这样实现。

fps = 30
title = 'normal speed video'
delay = int(1000 / fps)
for frame in frames(video):
    cv2.imshow(title, frame)
    if cv2.waitKey(delay) & 0xFF == ord('q'):
        break
cv2.destroyAllWindows()

这里frames生成器简单地逐帧生成视频,可以是found here

也可以通过Video在Jupyter中以编程方式显示视频。

from IPython.display import Video
Video(‘https://archive.org/download/Sita_Sings_the_Blues/Sita_Sings_the_Blues_small.mp4’)
Video(‘path/to/video.mp4’)