Git Product home page Git Product logo

video-clipper-for-uploaders's Introduction

录课助手 - Python/FFMPEG懒人剪辑工具

简介

录制网课时,我们经常会有对其中一段视频不满意、想要截取其中一部分、并将多个片段拼接成一个视频的需求。

通常这种需求,我们会选择使用Adobe PR、剪映等软件,将多个视频片段剪辑。然而,这种方法比较浪费时间,导出时也消耗大量不必要的显卡资源。

借助FFMpeg命令行工具(https://ffmpeg.org/),我开发了一个Python脚本,仅需将需要拼接的视频放入指定的文件夹,并在文件名上显式地标明要剪辑的时间段,就可以自动地剪切、拼接成一个成品视频啦。

人生苦短,我用Python!

使用说明

将项目目录下载到本地,将ffmpeg.exe放在根目录(下载地址:https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z,在bin文件夹中)。

将需要拼接的视频放在项目目录in文件夹中,用Python解释器运行main.py。若运行成功,拼接结果在out文件夹中、剪切结果保留在in文件夹中。

脚本会首先检查in文件夹中的文件是否需要被剪切,规则如下:

  1. 因为FFMpeg不支持中文及包含特殊符号的文件名,这类文件名会在脚本中被自动重命名,且不会被剪切。这条规则可以被忽略,因为这是脚本内部所做的事情。
  2. 如果你想剪切一个视频,可以在文件名后面加上@符号并指定切入点、切出点的时刻,格式为:
    video_name@%H_%M_%S@%H_%M_%S.suffix_name
    
    例如,如果我想剪切一个视频的第2分钟到第5分20秒,可以命名为:
    my_video@00_02_00@00_05_20.mp4
    
  3. 如果你想从头剪切到一个时刻,可以只指定切出点,格式为:
    video_name@%H_%M_%S.suffix_name
    
    例如,如果我想截取一个视频的前3分半,可以命名为:
    my_video@00_03_30.mp4
    

注意事项

  1. 【重要】电脑上需要预装有Python3环境。
  2. 【重要】待拼接的所有视频必须来自同一个录制源,也就是码率、分辨率、文件名后缀等核心参数必须一致。(理论上不一致也能行,但我懒得写了,因为我用不上)
  3. 【重要】视频拼接的顺序默认是按照文件名升序排列的。
  4. 暂时仅支持Windows系统。支持市面上几乎所有视频、音频格式。FFMpeg支持的格式可以运行ffmpeg -formats来查看。
  5. 脚本支持回滚,被剪切的视频原文件会备份在backup文件夹中,以避免误操作。

video-clipper-for-uploaders's People

Contributors

gaojunran avatar

Stargazers

 avatar

Watchers

Kostas Georgiou avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.