+
93
-

回答

使用OpenCV剪辑视频的基本步骤如下:

1. 导入库
import cv2
2. 打开视频文件
video_path = 'input_video.mp4'
cap = cv2.VideoCapture(video_path)
3. 获取视频属性
fps = int(cap.get(cv2.CAP_PROP_FPS))
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
4. 创建VideoWriter对象
output_path = 'output_video.mp4'
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))
5. 设置剪辑的起始和结束时间
start_time = 10  # 起始时间(秒)
end_time = 20    # 结束时间(秒)

start_frame = int(start_time * fps)
end_frame = int(end_time * fps)
6. 读取并写入指定帧
frame_count = 0

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break

    if start_frame <= frame_count <= end_frame:
        out.write(frame)

    frame_count += 1
    if frame_count > end_frame:
        break
7. 释放资源
cap.release()
out.release()
cv2.destroyAllWindows()
完整代码
import cv2

# 打开视频文件
video_path = 'input_video.mp4'
cap = cv2.VideoCapture(video_path)

# 获取视频属性
fps = int(cap.get(cv2.CAP_PROP_FPS))
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))

# 创建VideoWriter对象
output_path = 'output_video.mp4'
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter(output_path, fourcc, fps, (width, height))

# 设置剪辑的起始和结束时间
start_time = 10  # 起始时间(秒)
end_time = 20    # 结束时间(秒)

start_frame = int(start_time * fps)
end_frame = int(end_time * fps)

# 读取并写入指定帧
frame_count = 0

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break

    if start_frame <= frame_count <= end_frame:
        out.write(frame)

    frame_count += 1
    if frame_count > end_frame:
        break

# 释放资源
cap.release()
out.release()
cv2.destroyAllWindows()
说明start_time 和 end_time 分别表示剪辑的起始和结束时间(秒)。frame_count 用于追踪当前帧的位置。cv2.VideoWriter 用于将帧写入新的视频文件。

通过这些步骤,你可以使用OpenCV轻松剪辑视频。

网友回复

我知道答案,我要回答