python视频截取

本文比较了使用OpenCV和moviepy库在Python中截取视频的两种方法。OpenCV虽然能实现视频截取,但代码量较大且无法处理音频。而moviepy则更简洁,支持音频处理,代码量较少。通过示例代码展示了如何用这两个库进行视频裁剪,并提供了获取音频的示例。
摘要由CSDN通过智能技术生成

使用opencv截断视频

opencv进行,截断多长,处理时间与moviepy差不多,可以操作图片,但是代码量较多,操作步骤多,不能够获取音频

import cv2
import time

start=time.time()
cap = cv2.VideoCapture("../images/video/1.mp4")

total = cap.get(cv2.CAP_PROP_FRAME_COUNT)
fps = cap.get(cv2.CAP_PROP_FPS)
h = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)
w = cap.get(cv2.CAP_PROP_FRAME_WIDTH)
print('视频总帧数:{} \t 视频帧速:{} \t 视频大小:{},{}'.format(total, fps, h, w))

size = (int(w), int(h))  # 原视频的大小
fourcc = cv2.VideoWriter_fourcc(*'XVID')
videoWriter = cv2.VideoWriter('video4.avi', fourcc, fps, size)

frameToStart = int(0 * fps)  # 开始帧 = 开始时间*帧率
frametoStop = int(20 * fps)  # 结束帧 = 结束时间*帧率
cap.set(cv2.CAP_PROP_POS_FRAMES, frameToStart)  # 设置读取的位置,从第几帧开始读取视频

current_frame = frameToStart
while (1):
    success, frame = cap.read()
    if success:
        current_frame += 1
        if (current_frame >= 0 and current_frame <= frametoStop):
            videoWriter.write(frame)
        else:
            break
    else:
        print('end')
        break
end=time.time()
print(end-start)

moviepy截断视频

moviepy需要代码量少,同时操作简单,可以提取音频

from moviepy.editor import *
#
# oldPath="../images/video/1.mp4"
oldPath=r"C:\Users\Administrator\Downloads\FlashDownload/暗杀.mp4"

# outputfile='video42.avi'
video = VideoFileClip(oldPath)
# 剪辑视频,截取视频60秒
startTime=11*60+3
video = video.subclip(startTime, startTime+59)
video.write_videofile("clip.mp4")
# 获取其中音频
audio = video.audio
# 保存音频文件
audio.write_audiofile('audio.mp3')

参考网页

  1. https://blog.csdn.net/lly1122334/article/details/90283655
  2. https://blog.csdn.net/yyy430/article/details/88404816
  3. https://zhuanlan.zhihu.com/p/260374152
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值