python 获取视频每一帧的时间并生成图片
时间: 2023-08-08 22:06:55 浏览: 178
python 实现视频 图像帧提取
你可以使用OpenCV库来读取视频文件并获取每一帧的时间戳,并使用Pillow库来生成图片。以下是示例代码:
```python
import cv2
from PIL import Image
# 打开视频文件
cap = cv2.VideoCapture('video.mp4')
# 获取视频帧率
fps = cap.get(cv2.CAP_PROP_FPS)
# 获取视频总帧数
total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
# 遍历视频的每一帧
for i in range(total_frames):
# 读取当前帧并获取时间戳
ret, frame = cap.read()
timestamp = i / fps
print("Frame %d timestamp: %.2f seconds" % (i, timestamp))
# 将当前帧转换为Pillow Image对象
image = Image.fromarray(frame)
# 保存图片文件
image.save("frame_%d.jpg" % i)
# 关闭视频文件
cap.release()
```
该代码将打开一个名为 "video.mp4" 的视频文件,并遍历每一帧。对于每一帧,它将计算时间戳并将其打印到控制台上。然后,它将当前帧转换为Pillow Image对象,并将其保存为名为 "frame_i.jpg" 的图像文件。请注意,视频的帧率和总帧数使用 `cv2.CAP_PROP_FPS` 和 `cv2.CAP_PROP_FRAME_COUNT` 属性获取。
阅读全文