python实现:使用opencv库,读取一个文件夹内所有的.mp4视频,每个视频10秒到30秒。播放完一个视频后结束,再播放下一个视频。
时间: 2024-10-20 10:16:46 浏览: 36
python如何实现从视频中提取每秒图片
在Python中,我们可以使用OpenCV(cv2)库配合`skimage.io.videoread`函数读取MP4视频,并结合`matplotlib`或`cv2.imshow`来显示视频帧。为了按照你的需求,每10秒到30秒播放视频并逐个播放文件夹内的视频,你可以使用下面的示例代码:
```python
import cv2
import os
folder_path = "/path/to/your/video/folder"
for filename in os.listdir(folder_path):
if filename.endswith(".mp4"):
video_path = os.path.join(folder_path, filename)
cap = cv2.VideoCapture(video_path)
start_time = 10
end_time = 30
while True:
ret, frame = cap.read()
if not ret or (cap.get(cv2.CAP_PROP_POS_MSEC) / 1000 > end_time): # 检查是否达到指定范围
break
if cap.get(cv2.CAP_PROP_POS_MSEC) / 1000 >= start_time: # 如果超过开始时间才开始显示
cv2.imshow('Video', frame)
if cv2.waitKey(1) & 0xFF == ord('q'): # 等待用户按下 'q' 键退出
break
cap.release()
cv2.destroyAllWindows()
print(f"Finished playing {filename}")
# 请注意替换上述代码中的`folder_path`为你的实际文件夹路径
```
这段代码会循环遍历指定文件夹内的所有MP4视频,从第10秒开始播放到第30秒,然后关闭当前视频并在控制台上打印已播放的视频文件名。用户可以通过按 'q' 键中断当前视频的播放。
阅读全文