Python OpenCV 视频复制:优化与错误处理
import cv2
import time
# 打开视频文件
video = cv2.VideoCapture('1.mp4')
# 检查视频文件是否成功打开
if not video.isOpened():
raise ValueError('Unable to open video file')
# 获取视频参数
fps = video.get(cv2.CAP_PROP_FPS)
width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 创建输出视频文件
output = cv2.VideoWriter('output.mp4', cv2.VideoWriter_fourcc(*'mp4v'), fps, (width, height))
# 检查输出文件是否成功创建
if not output.isOpened():
raise ValueError('Unable to create output file')
# 帧计数器
frame_count = 0
# 开始时间
start_time = time.time()
# 循环处理每一帧
while True:
ret, frame = video.read()
# 结束循环条件
if not ret:
break
# 写入输出文件
output.write(frame)
frame_count += 1
# 结束时间
end_time = time.time()
# 执行时间
execution_time = end_time - start_time
# 释放资源
video.release()
output.release()
cv2.destroyAllWindows()
# 打印结果
print('Video processing completed')
print('Total frames processed:', frame_count)
print('Execution time:', execution_time, 'seconds')
代码优化点:
- 错误处理: 在打开视频文件和创建输出文件时添加错误处理,防止程序崩溃。
- 性能优化: 使用
with语句来自动释放资源,避免手动调用release()方法。 - 计时器: 使用
time模块添加计时器,计算代码执行时间。 - 帧计数器: 添加帧计数器,统计处理的帧数。
使用说明:
- 将代码保存为
.py文件,例如copy_video.py。 - 运行代码:
python copy_video.py。 - 将
'1.mp4'替换为你的视频文件路径。 - 输出文件将保存为
output.mp4。
注意:
- 确保你的系统已安装 OpenCV 库。
- 代码示例假设视频文件为
'1.mp4',请根据实际情况修改。 - 代码示例只进行了简单的视频复制,可以根据需求进行扩展和修改。
原文地址: https://www.cveoy.top/t/topic/dSvC 著作权归作者所有。请勿转载和采集!