优草派  >   Python

Python实现视频裁剪怎么做?Python如何按尺寸裁剪视频

罗西汉            来源:优草派

很多小伙伴在平时看视频的时候都会有把一些判断或者是否一个画面给裁剪下来保存的想法,但是截图或者录屏的话不仅麻烦还会占用很大的内存空间。那么在学习了python之后就要知道可以使用python来解决这个问题,下文有详细的代码示例和详解。

Python实现视频裁剪怎么做?Python如何按尺寸裁剪视频

1.python实现自定义尺寸的视频裁剪需要用到三个库,分别为内置模块os,用来读取视频文件并保存。内置模块uuid,它是用来识别视频信息的。那么第三个就是对视频进行处理的库ffmpy了,代码如下:

import os
import uuid
from ffmpy import Ffmpeg

2.python视频裁剪所需使用的模块和库都导入完成之后定义一个函数并设置四个参数,这个四个参数表示的就是视频文件的读取和输出路径,以及裁剪时的坐标和长宽,示例如下:

def cut_out_video(video_path: str, output_dir: str, start_pix: tuple, size: tuple):

需要注意的一点就是,接下来步骤里面的所有代码都需要写在函数内,复制的时候要注意一下代码缩进。

3.函数内的第一行代码就是去除路径之中空格并且使用点将其分割,然后用if条件判断它们是否为视频文件。如果不是的话就直接抛出一个异常信息就好了,是视频文件的话就用uuid库获取它的信息。然后直接调用Ffmpeg方法并且将参数给传递进去就可以了,代码如下所示:

def cut_out_video(video_path: str, output_dir: str, start_pix: tuple, size: tuple):
    ext = os.path.basename(video_path).strip().split('.')[-1]
    if ext not in ['mp4', 'avi', 'flv']:
        raise Exception('format error')
    result = os.path.join(output_dir, '{}.{}'.format(uuid.uuid1().hex, ext))
    ff = FFmpeg(inputs={video_path: None},
                outputs={
                    result: '-vf crop={}:{}:{}:{} -y -threads 5 -preset ultrafast -strict -2'.format(size[0],size[1],start_pix[0],start_pix[1])})
    ff.run()
        return result
cut_out_video(r'st2.mp4', r'\Desktop', (0, 0), (512, 512))

以上就是关于“Python实现视频裁剪怎么做?Python如何按尺寸裁剪视频”的全部内容了,希望对你有所帮助。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行