可以使用OpenCV库中的cv2.putText()函数将帧编号和总帧时长添加到视频中。以下是一个示例代码:
import cv2
# 视频文件名
video_name = "example.mp4"
# 打开视频文件
cap = cv2.VideoCapture(video_name)
# 定义字体和颜色
font = cv2.FONT_HERSHEY_SIMPLEX
font_scale = 1
thickness = 2
color = (255, 0, 0)
# 初始化帧计数器和帧间隔
frame_count = 0
fps = cap.get(cv2.CAP_PROP_FPS)
interval = int(1000/fps) # 间隔时间,单位为毫秒
while True:
ret, frame = cap.read()
if not ret:
break
# 帧编号和总帧时长
duration = int(cap.get(cv2.CAP_PROP_FRAME_COUNT)/fps)
text = "Frame: {} / {}".format(frame_count, duration)
# 在画面左上角添加文本
cv2.putText(frame, text, (10, 50), font, font_scale, color, thickness, cv2.LINE_AA)
# 显示视频并保存
cv2.imshow("Video", frame)
cv2.imwrite("output/%06d.jpg" % frame_count, frame)
frame_count += 1
# 按ESC键退出循环
if cv2.waitKey(interval) == 27:
break
cap.release()
cv2.destroyAllWindows()
该代码会在视频中的左上角添加当前帧编号以及总帧时长,然后将帧保存为jpg文件。你可以自行修改输出路径和格式。