所以我知道 opencv 和 pymovie 但我似乎无法在这里或谷歌或本网站上的任何地方找到工作示例。我不想将 mp4 转换成其他任何东西。如果可能的话,它必须是 mp4 文件格式的视频。如果可能的话,请有人指出我可以用来实现此目的的模块的方向,以及我可以使用所述一个或多个模块来播放 mp4 的脚本示例。如果不可能,我应该转换成什么好的格式以及什么是好的转换程序。所有的输入都会有帮助,谢谢。
如果您只想播放 mp4 视频,那么这个 opencv 程序将帮助您做到这一点。
import cv2
cap = cv2.VideoCapture("v2.mp4")
ret, frame = cap.read()
while(1):
ret, frame = cap.read()
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q') or ret==False :
cap.release()
cv2.destroyAllWindows()
break
cv2.imshow('frame',frame)
您可以根据需要更改窗口的名称。如果视频文件在其他目录中,则以“Drive://x/x/xx.mp4”格式提供视频补丁。 “ret”值显示视频文件是否按帧读取。
仅运行该文件有什么问题?
from os import startfile
startfile(path)
如果您的计算机上有任何 .mp4 播放器,它就会播放。
我在第一个解决方案中遇到了音频问题,并且我不喜欢第二个解决方案不关闭窗口。因此,我建议使用 Pygame 和 Pyvidplayer2。
设置:
pip install pygame
pip install pyvidplayer2
代码:
import pygame
from pyvidplayer2 import Video
# create video object
vid = Video("video.mp4")
win = pygame.display.set_mode(vid.current_size)
pygame.display.set_caption(vid.name)
while vid.active:
key = None
for event in pygame.event.get():
if event.type == pygame.QUIT:
vid.stop()
elif event.type == pygame.KEYDOWN:
key = pygame.key.name(event.key)
# only draw new frames, and only update the screen if something is drawn
if vid.draw(win, (0, 0), force_draw=False):
pygame.display.update()
pygame.time.wait(16) # around 60 fps
# close video when done
vid.close()
pygame.quit()