python如何用opencv把一个视频按每10秒一小段切下来

视频共计30秒,按每10秒一段视频切下来,求代码... 视频共计30秒,按每10秒一段视频切下来,求代码 展开
 我来答
哈哈呵呵你好7
2019-03-09 · TA获得超过1626个赞
知道大有可为答主
回答量:2238
采纳率:79%
帮助的人:256万
展开全部

你好,下面是相应的一个代码,你可以参考一下:

import cv2
import os
# 先导入openCV
# 将一个长的视频缩短,按照比例缩短,只保存其中的一部分
# 如下面代码就是将一个长视频每10秒取10秒,合并成一个短视频
cap = cv2.VideoCapture('myvideo.avi')
if not cap.isOpened():
    print('video is not opened')
else:
    # 每秒25帧
    num = 0
    # 取10秒
    needTime = 250
    # 每10秒
    timeSpace = 250
    # 获取视频帧率
    fps = cap.get(cv2.CAP_PROP_FPS)
    # AVI格式编码输出XVID
    videoWriter = cv2.VideoWriter('result//resultVideo_2.avi',cv2.VideoWriter_fourcc('X','V','I','D'),fps,frameSize=(320,288))
    while(1):
        success,frame = cap.read()()
        if (num%timeSpace <= needTime):
            videoWriter.write(frame)
            print('write'+ str(num))
        num = num + 1
        if not success:
            print('finished')
            break
        if cv2.waitKey(100) & 0xFF == ord('q'):
            break
    cap.release()
更多追问追答
追问
这种我知道,但是这样只能截取前10秒的视频保存,我想知道的是每10秒截取一次保存,最后不足10秒的保存
追答
这个就是这样的呀,其实它就是按每秒25帧来计算出来10秒需要250帧。然后每250帧进行一次切割。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式