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')

代码优化点:

  1. 错误处理: 在打开视频文件和创建输出文件时添加错误处理,防止程序崩溃。
  2. 性能优化: 使用 with 语句来自动释放资源,避免手动调用 release() 方法。
  3. 计时器: 使用 time 模块添加计时器,计算代码执行时间。
  4. 帧计数器: 添加帧计数器,统计处理的帧数。

使用说明:

  1. 将代码保存为 .py 文件,例如 copy_video.py
  2. 运行代码:python copy_video.py
  3. '1.mp4' 替换为你的视频文件路径。
  4. 输出文件将保存为 output.mp4

注意:

  • 确保你的系统已安装 OpenCV 库。
  • 代码示例假设视频文件为 '1.mp4',请根据实际情况修改。
  • 代码示例只进行了简单的视频复制,可以根据需求进行扩展和修改。
Python OpenCV 视频复制:优化与错误处理

原文地址: https://www.cveoy.top/t/topic/dSvC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录