import cv2
# 读取视频文件
cap = cv2.VideoCapture('input.mp4')
# 获取视频的帧率
fps = cap.get(cv2.CAP_PROP_FPS)
# 获取视频的总帧数
total_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))
# 计算加速后的每帧时间
time_per_frame = 1 / (fps * 2)
# 创建VideoWriter对象以写入加速后的视频
fourcc = cv2.VideoWriter_fourcc(*'mp4v') # 根据你的需要选择合适的编解码器
out = cv2.VideoWriter('output.mp4', fourcc, fps * 2, (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))))
# 遍历视频的每一帧
for i in range(total_frames):
ret, frame = cap.read()
if not ret: # 如果无法获取帧,跳过
continue
# 对帧进行加速处理(例如,你可以在这里添加一些简单的加速效果,如时间压缩或帧重复)
# 这里我们只是简单地将帧写入新的视频文件
out.write(frame)
# 为了演示目的,我们将输出每帧的帧数。你可以根据需要修改这部分代码。
cv2.putText(frame, str(i), (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)
cv2.imshow('Video', frame)
if cv2.waitKey(int(time_per_frame * 1000)) & 0xFF == ord('q'): # 按q退出
break
# 释放资源并关闭窗口
cap.release()
out.release()
cv2.destroyAllWindows()
ubuntu python2 实测通过