以下是一个使用Python和OpenCV库进行视频剪辑的示例代码:
import cv2
def video_clip(input_file, output_file, start_time, end_time):
# 打开视频文件
video = cv2.VideoCapture(input_file)
# 获取视频的帧率和总帧数
fps = video.get(cv2.CAP_PROP_FPS)
total_frames = int(video.get(cv2.CAP_PROP_FRAME_COUNT))
# 计算起点和终点时间对应的帧数
start_frame = int(start_time * fps)
end_frame = int(end_time * fps)
# 确保起点和终点时间在视频范围内
if start_frame < 0:
start_frame = 0
if end_frame > total_frames:
end_frame = total_frames
# 设置视频编解码器和输出文件格式
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
output = cv2.VideoWriter(output_file, fourcc, fps, (int(video.get(3)), int(video.get(4))))
# 循环遍历视频帧
while video.isOpened():
ret, frame = video.read()
# 在起点和终点时间内,将帧写入输出视频文件
if ret and video.get(cv2.CAP_PROP_POS_FRAMES) >= start_frame and video.get(
cv2.CAP_PROP_POS_FRAMES) <= end_frame:
output.write(frame)
# 达到终点时间后停止循环
if video.get(cv2.CAP_PROP_POS_FRAMES) > end_frame:
break
# 释放视频对象
video.release()
output.release()
print("视频剪辑完成!")
# 输入视频文件名、输出视频文件名、起点时间和终点时间进行剪辑
input_file = "input_video.mp4"
output_file = "output_video.mp4"
start_time = 10.0 # 起点时间,单位为秒
end_time = 30.0 # 终点时间,单位为秒
video_clip(input_file, output_file, start_time, end_time)
请注意,这段代码使用OpenCV库来处理视频,并需要安装OpenCV库才能运行。另外,你需要将代码中的输入视频文件名、输出视频文件名、起点时间和终点时间根据实际情况进行修改。