zoukankan      html  css  js  c++  java
  • python截取视频中的某一段,保存为avi结尾的视频

    # 功能:对视频文件进行剪切。
    # 剪切指定长度的视频,选择要裁剪的视频,选择开始时间点和停止时间点即可。
    # 将处理后的视频保存为output.avi文件
    import cv2  # OpenCV
    import tkinter.filedialog  # Python文件对话框
    
    def samllVideoGif(_videoPath,_videoGifPath):
        # _videoPath = "C:\Users\sswc\Desktop\gai2\public\showPdf\6f3db1f9-e247-4aa5-bca7-93bae62a0079.mp4"
        # _videoGifPath = "C:\Users\sswc\Desktop\gai2\public\showPdf\6f3db1f9-e247-4aa5-bca7-93bae62a0079.avi"
        cap = cv2.VideoCapture(_videoPath)  # 打开视频文件
        frames = cap.get(cv2.CAP_PROP_FRAME_COUNT)  # 获得视频文件的帧数
        fps = cap.get(cv2.CAP_PROP_FPS)  # 获得视频文件的帧率
        width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)  # 获得视频文件的帧宽
        height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)  # 获得视频文件的帧高
    
        # 创建保存视频文件类对象
        fourcc = cv2.VideoWriter_fourcc(*'XVID')
        out = cv2.VideoWriter(_videoGifPath, fourcc, fps, (int(width), int(height)))
    
        # 计算视频长度/s
        video_length = frames / fps
        # print('start and stop must < %.1f' % video_length)  # 提示用户输入变量的范围
        # start = float(input('Input an start time/s:'))
        # stop = float(input('Input an stop time/s:'))
        # print('start and stop must < %.1f' % video_length)  # 提示用户输入变量的范围
        start = 0
        stop = 10
        # 设置帧读取的开始位置
        cap.set(cv2.CAP_PROP_POS_FRAMES, start * fps)
        pos = cap.get(cv2.CAP_PROP_POS_FRAMES)  # 获得帧位置
        while (pos <= stop * fps):
            ret, frame = cap.read()  # 捕获一帧图像
            out.write(frame)  # 保存帧
            pos = cap.get(cv2.CAP_PROP_POS_FRAMES)
    
        cap.release()
        out.release()
  • 相关阅读:
    Arcgis javascript api离线开发环境搭建
    hbase基础
    Dojo 之 面向对象(转)
    Linux
    并行计算多线程常见问题
    [转]捕捉DataGridView的单元格编辑时的键事件
    'router' => array( 'routes' => array( 'album' => array( 'type' => 'segment', 'options' => arra
    [疯狂xml讲义]chap4之Schema记录
    [WinForm]DataGridView如何绑定对象的复合属性
    [C#之Ftp]RFC959笔记01
  • 原文地址:https://www.cnblogs.com/lxz123/p/13608098.html
Copyright © 2011-2022 走看看