V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
JackalZhao
V2EX  ›  分享创造

Quick Cut ——你最得力的视频处理工具 正式发布

  •  
  •   JackalZhao · 2020-07-25 16:04:45 +08:00 · 7119 次点击
    这是一个创建于 1581 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一句简介

    Quick Cut  是一款轻量、强大、好用的视频处理软件。Quick Cut 可以满足普通人一般的视频处理需求:压缩视频、转码视频、倒放视频、合并片段、根据字幕裁切片段、自动配字幕、自动剪辑……

    (我是作者)

    应用平台

    • Windows
    • MacOS
    • Linux

    其中,Linux 和 macOS 平台因为我没有相应的电脑,无法编译,需要志愿者进行编译。

    Windows 平台已在 Gitee 上发布 release 。下载后,无需安装,解压后就可以运行使用。

    应用简介

    Quick Cut  是一款轻量、强大、好用的视频处理软件。它是一个轻量的工具,而不是像 Davinci Resolve 、Adobe Premiere 那样专业的、复杂的庞然大物。Quick Cut 可以满足普通人一般的视频处理需求:压缩视频、转码视频、倒放视频、合并片段、根据字幕裁切片段、自动配字幕、自动剪辑……

    它是开源的,你可以免费使用它。

    界面预览:

    image-20200725091927151

    📝 背景

    好几年前,有一次想将一个视频中的片段剪出来,才发现,市面上根本没有给普通用户用的视频处理软件。

    我去百度、知乎上搜 [视频剪辑软件] ,陆续得到了以下结果:

    • Adobe Premiere ,正版一年上千元、随时 [停止运行] 的专业剪辑软件
    • Vegas  等专业软件就不再列了
    • 爱剪辑 ,一个导出就带推广片头的中文剪辑软件
    • 格式工厂 ,一个老牌的国产转码编辑软件
    • 小丸工具箱 ,一个从 Bilibili 知道的压制软件
    • 还有大大小小的其它软件

    我就只想剪一小个片段啊!专业软件学不起、买不起、电脑太卡带不起!可是其它小软件、许多国产剪辑软件,都有这一些问题:

    • 国外软件选项太多,各种参数看不懂。
    • 多数免费软件都带水印,或者导出后画质会下降,要么导出的体积巨大,耗时长不说,还不是无损剪辑。

    用的最好的还是  格式工厂  和  小丸工具箱  。但他们都功能很少,还有小丸工具箱,官网的下载地址是百度网盘链接已经挂了,也不知道从第三方下载的版本有没有木马、广告……

    后来,从视频压制这个话题,我知道了  FFmpeg  这个神级开源工具,它的功能之强大、应用之广泛到惊了我的下巴!但它是个命令行工具,到百度上一搜,也只是些文章说怎样怎样的命令可以做什么、常用命令有什么。相关的图形界面工具,一个好用的都没有!(当然要点名表扬下 Lossless Cut,它还是很好用的,只是功能太少)。没有一个软件能让 FFmpeg 在普通大众用户手中发挥潜力,真是可惜了!

    于是一通操作,把 FFmpeg 的官方文档逐句做了翻译,记了笔记,然后用它来处理视频,真是畅快!免费、无广告,剪出来的视频也可以画质无损。100 兆的视频压缩到 10 兆,肉眼画质无损,那是一个巴适!

    但是有一个问题!每次要处理一个视频,都要手动输入命令行,非常的麻烦,有时候忘记执行某个操作是用哪个参数了,还要去翻笔记,难受!于是我就想做一个图形界面工具,想要做什么,在里面点两下,命令参数啥的都是自动生成,最后点击运行就好。于是先后做了基于  Tasker  的安卓端 FFmpeg GUI Tool 、基于  Quicker  的 FFmpeg GUI Tool 。

    但是上面两个平台都局限太多,想要好用,还是得自己做 GUI 。我自己只是入门 python 的水平,只能硬着头皮花了几天在学习平台 B 站看完了 PyQt 的入门。然后边查边做,因为 PyQt 的注释很少,有时一个简单的小细节要花半天到一天处理。最后,成品还是出来了!

    当然,除了  FFmpeg  的功能外,我还做了  语音自动转字幕  功能。这里,我要不指名地 Diss 一些商家:

    • 首先是价格,贵的要 1 元 /分钟,便宜些的也要 4 毛 /分钟!转个 20 分钟的视频,就要收我 8 元,抢钱呐!啊?你们是没有语音引擎的,都是用的 API,大批量采购,你们用的 API 价格也就 1.2 元 /小时 左右吧!用 API 成本几十倍的价格提供服务,这吃相,真是难看。
    • 然后是上传视频。语音转字幕,上传音频便足以,一些商家却需要上传完整视频! 2GB 的视频,通常其音频只有几十 MB 左右。你们是你们觉得:用户见转写了几十 MB 的视频,会觉得这么小的文件,1 元 /分钟的价格不值,转写了 2GB 的视频,一看这转写体积,就觉得花钱花的值?

    在 Quick Cut 里,我做了  语音自动转字幕  功能,可以使用阿里或腾讯的 Api 。就以阿里的 API 为例,普通元套餐的商用价格是 2.5 元 /小时,四十五几乎就是不要钱!下面的帮助里,我写下了申请阿里 API 的教程,只要填入 API,就可以使用语音转字幕了。

    另外,我还将另一个  自动剪辑神器  放进了 Quick Cut,将你的 Vlog 、视频教程一键自动剪好。下面会有详细介绍。

    同时,推荐 Quick Cut 中一个对学习外语的同学非常有用的功能: 将字幕中的每一句话对应的视频剪成片段提取出来 。用于制作外语学习的视频素材爽的不要不要的!应该算是  Anki  用户的一个福利功能吧!

    ✨ 特性

    • 简单的界面
    • FFmpeg 预设丰富
    • 可自定义预设
    • 合并视频片段
    • 逐句提取每句字幕对应的视频片段
    • 自动转字幕
    • 自动剪辑
    • ……更多待探索

    🔮 界面和功能介绍

    FFmpeg 界面

    在这个界面,你可以使用许多 ffmpeg 预设,对音视频进行处理,比如说:

    我想将手机上录制的视频压制下,减小它的大小,那么只需要:先在  输入 1  框输入待压制的视频文件(此时会自动生成输出文件名),再在右侧预设列表选择  H264 压制  预设(此时会自动生成总命令),最后点击底部的  运行  按钮,就会启动压制了。

    点击去查看 Quick Cut 压制的视频教程

    点击去查看 Quick Cut 预设讲解视频教程

    分割视频界面

    这个界面有三个功能:根据字幕分割视频、根据大小分割视频、根据时长分割视频。

    根据字幕分割视频是个神级功能,尤其适合于制作外语学习的视频素材。将例如美剧的视频放进去,再把相应的字幕文件放进去,就可以将每一句字幕对应的视频片段剪出来!如果你的字幕时间轴和视频时间轴有偏差,还可以进行手动的校准。

    根据时间分割视频和根据大小分割视频主要是针对分享到短视频平台和微信平台的。

    点击去查看 Quick Cut 分割视频的视频教程

    image-20200725103345859

    合并片段界面

    这个简单,要合并的视频拖进去,调整下顺序,点击运行,就可以将这些视频合并成一个文件。从 ig 下载的 15 秒 story 视频片段就可以轻松合并啦!

    点击去查看 Quick Cut 合并片段的视频教程

    image-20200725103322509

    下载视频界面

    这个界面提供了两个命令行工具的图形界面用于下载视频,最简单的用法就是将链接复制进去,然后点击下载。支持的网站有很多比如优酷、B 站、YouTube 、P 站(逃)……

    另外你还可以在里面设置 cookies,就能够用你大会员身份登录的 cookie 信息下载大会员视频画质了。

    点击去查看 Quick Cut 下载视频的视频教程

    image-20200725103257140

    自动剪辑界面

    自动剪辑的原理是通过给视频中有声音的片段和没有声音的片段施加不同的播放速度,达到只保留有关键信息部分的效果,非常适合做 vlog 和视频教程。

    同时你也可以选择使用阿里云或者腾讯云的语音服务,先将视频转出字幕之后,再根据字幕中的关键词对视频片段进行保留和删除操作。

    除了下面那个演示视频,在本教程中的所有视频,都使用了自动剪辑,然后才上传的。

    点击去查看 Quick Cut 自动剪辑的效果演示视频

    点击去查看 Quick Cut 自动剪辑的视频教程

    image-20200725103228908

    自动转字幕界面

    只要将你的视频或者音频文件拖进去,然后点击运行,就可以生成一个 srt 格式的字幕。

    语音识别方面使用了阿里云或者腾讯云的引擎,准确率有 95%以上。如果想给自己的视频配字幕,就可以先用这个功能,自动转出字幕之后,再手动修改一下里边偶尔的错别字,效率非常高。

    语音识别引擎需要用户自己去阿里云官网申请 API 才能用(对申请过程我做了视频教程)。阿里云的语音服务开通后,每个新用户有 3 个月的免费试用时间,在这 3 个月内,每天都有两小时的录音文件转换额度。试用期过后,商业版的价格是每小时音频转换 2.5 元,随着使用量的增加,这个价格还会更低。如果买 1000 小时的套餐,价格可以低到 1.5 元每小时。

    如果你对比一下目前网上能找到的视频转字幕服务,你就会知道 Quick Cut 的这个转字幕功能有多便宜:

    • 网易见外工作台,普通的视频转字幕,收费 1 元每分钟,60 元每小时。英文转字幕价格翻倍。
    • 号称全网最低价的突字幕,收费 0.005 元每秒,3 毛每分钟,18 元每小时。
    • Arctime 收费 30 积分每分钟,也就是 3 毛每分钟,18 元每小时。

    来对比一下:阿里云 2.5 元每小时,前三个月每天免费用两小时,用得越多价,格还会更低。

    腾讯云方面的价格还会更低,只是转换速度没有阿里云快。所以推荐使用阿里云。就算是用商业版每小时 2.5 元的价格也不心疼。

    如果你急着把最新的美剧视频下载下来,字幕组还没有出字幕,但是生肉太难啃,就可以用这个转字幕功能,将英文字幕转出来,配合着看。

    如果你是视频工作者、UP 主、视频公司负责人,平常有大量的视频需要转换字幕,用这个就可以舍去使用其他网上平台导致的每小时几十元的成本,一个月下来成本或许能节约到上千元。。

    哎,说实话,要是这软件推广开来,对一些视频转字幕的服务商,真的是断人财路,杀人父母。

    点击去查看 Quick Cut 自动转字幕的演示

    image-20200725103137457

    语音识别输入界面

    如果你已经添加上阿里云的语音引擎,就可以使用阿里云的一句话识别服务进行语音识别输入。在任意界面,只要长按键盘上的盗窃锁定键超过 0.3 秒钟,就可以开始说话,进行语音识别。松开按键之后,识别结果会自动打到输入框。

    有人推荐使用讯飞的语音识别,但是讯飞语音识别的快捷键在 F6 那个位置,离主键盘的位置非常远,手指够过去费劲;而且那里有很多大小一样的按键,这个快捷键也不好找;他还会和很多软件的快捷键冲突。

    而长按大写锁定键进行语音识别就非常方便,离打字的手非常近,需要的时候很轻松就能按到,也不会有快捷键冲突。

    阿里云语音识别的准确率非常高,这篇文章大部分都是用这个语音识别功能打的,然后修改了少量错字。

    点击去查看 Quick Cut 语音识别输入的演示

    image-20200725103107328

    设置界面

    在设置界面你就可以在这里配置语音识别的引擎。

    勾选上  点击关闭按钮时隐藏到托盘  ,就可以让软件常驻到后台,方便快捷的调出来剪辑视频、语音输入。Quick Cut 的资源占用量非常少,可以放心的放到后台,不影响性能。

    点击去查看 Quick Cut 配置阿里云语音识别引擎的视频教程

    image-20200725103013287

    帮助界面

    在帮助见面里,有如下按钮,见名知意:

    image-20200725102850979

    🔨 开发

    这一节普通用户就不用看了。你们只要到发布界面下载使用已打包好的软件就行了,如果你想对源代码进行修改,就可以看下这一节。

    搭建环境

    你需要 pip 安装这些包:

    srt keyboard numpy setuptools aliyun-python-sdk-core PyQt5 audiotsm scipy cos-python-sdk-v5 tencentcloud-sdk-python oss2 pyaudio
    

    其中,pyaudio 很难安装!编译成功有很多要求。所以我们可以直接到 这里 下载上它已经被志愿者编译好的 whl 包,用 pip 安装,注意下载对应你 python 版本的包。

    阿里云语音识别 sdk

    然后还需要安装阿里云语音识别引擎的 sdk,这个 sdk 是无法通过 pip 安装的,而是要通过 这篇阿里云官方文档 的方法进行安装:

    pip install setuptools
    

    下载 Python SDK

    # 打包 python setup.py bdist_egg # 安装 python setup.py install
    

    运行问题:

    安装完依赖之后开始运行脚本,你可能会遇到这些问题:

    • 安装完依赖后,你运行脚本,却发现  import oss2  时提示出错: No module named 'winrandom' ,这时,你需要修改  Python38\Lib\site-packages\Crypto\Random\OSRNG  下的  nt.py  文件,将  import winrandom  修改为: from Crypto.Random.OSRNG import winrandom

    这些问题的原因是一些模块用了其它依赖,而这些其它依赖已经好久没更新了。只能遇到一个问题就搜一下,解决掉。上面这些问题都是我遇到后,在网上找了解法,根据自己的情况做了改动,使得问题得以解决。

    搭建好环境可以运行之后,如果修改了源代码然,后要进行发布,就应当打包成可以独立运行的 exe 文件,下面提供两种方法进行编译打包:

    使用 nuitka 编译:

    使用它打包出来的程序运行更快,只是相对步骤多一些。

    先下载安装上 MinGW64 8.1

    再安装上 nuitka:

    pip install nuitka
    

    在实际编译的时候,先使用这个命令进行编译:

    start cmd /k nuitka --mingw64 --standalone --show-progress --show-memory --plugin-enable=qt-plugins --plugin-enable=pylint-warnings --recurse-all --recurse-not-to=numpy,jinja2 --windows-icon=icon.ico --nofollow-imports --assume-yes-for-downloads --output-dir=out QuickCut.py
    

    这时,可能会遇到如下错误:

    image-20200724211333904

    就是因为代码里面有中文字符,默认使用的英文编码在转码时出现了错误,你就需要找到并打开最后指示的那个  MainControl.py  文件,将里面出错的那一行的  latin1  修改为  utf-8  ,然后就可以编译成功。

    以后其实还并不能运行,因为 nuitka 对于某些包并不会自动导入,还需要你手动导入才行。

    所以在实际编译的时候,还是先使用这个命令进行编译:

    start cmd /k nuitka --mingw64 --standalone --show-progress --show-memory --plugin-enable=qt-plugins --plugin-enable=pylint-warnings --recurse-all --recurse-not-to=numpy,jinja2 --windows-icon=icon.ico --nofollow-imports --assume-yes-for-downloads --output-dir=out QuickCut.py

    然后再编译的导出目录在命令行窗口中将  QuickCut.exe  打开,会看到类似这样的错误:

    image-20200725104724393

    这时候,就需要亲自到 Python 的安装目录下找到这个包:

    image-20200725104814559

    将它手动复制到导出目录的根目录中:

    image-20200725104901324

    重复运行,再次出现包缺失:

    image-20200725105214629

    都需要找到这个包:

    image-20200725105301248

    粘贴到编译导出目录的根目录中。这个过程要重复很多次,直到将所有缺失的包都复制到导出目录。

    你可以将这些需要手动导入的包都再复制到另一个文件夹做备份,再次编译后,直接复制进去就行。

    编译完成,你启动后可能是这个样子的:

    image-20200725110050437

    长得很丑对吧。这是因为缺失了 styles 文件夹,你需要到 PyQt5 的安装目录,找到 styles 文件夹:

    image-20200725110307123

    将其复制到编译导出目录的根目录之后,再次启动就正常了。

    还有,记得将 icon.ico 、sponsor.jpg 、README.html 复制到编译导出的文件夹,没有图标文件的话,就无法启动托盘。

    再次编译。测试成功后,就可以使用下面这个命令进行编译:

    start cmd /k nuitka --mingw64 --windows-disable-console --standalone --show-progress --show-memory --plugin-enable=qt-plugins --plugin-enable=pylint-warnings --plugin-enable=numpy --recurse-all --recurse-not-to=numpy,jinja2 --windows-icon=icon.ico --nofollow-imports --assume-yes-for-downloads --output-dir=out QuickCut.py
    

    这样就可以将命令行窗口隐藏。

    pyinstaller 编译:

    先安装上 pyinstaller:

    pip install pyinstaller
    

    直接使用这个命令进行编译:

    start cmd /k pyinstaller --hidden-import pkg_resources.py2_warn --noconfirm -w -i icon.ico QuickCut.py
    

    其中, --hide-import pkg_resources.py2_warn  这一句比较重要,其实整个软件并没有用到这个模块,但是 pyinstaller 他会自动的编译进去,可是电脑上又没有安装这个模块,最后编译出来的软件就无法运行,所以一定要加上这个选项。

    ☕ 打赏

    万水千山总是情,一块几块都是情。本软件完全开源,用爱发电,如果你愿意,可以以打赏的方式支持我一下:

    sponsor

    😀 交流

    如果有软件方面的反馈可以提交 issues,或者加入 QQ 群:1146626791

    🙏 鸣谢

    感谢知乎上的 @Python 与模具 的帮助,让我得以用 nuitka 对软件进行打包。

    官方网站 && 应用商店地址

    开源地址: https://gitee.com/haujet/QuickCut

    发行包下载地址: https://gitee.com/haujet/QuickCut/releases

    第 1 条附言  ·  2020-07-27 08:44:35 +08:00

    有人请求公开我翻译的 FFmpeg 文档了,那就放出来:

    FFmpeg 官方文档翻译

    FFmpeg Utility 帮助文档翻译

    34 条回复    2020-08-10 20:35:32 +08:00
    Themyth
        1
    Themyth  
       2020-07-25 16:20:09 +08:00
    你是淳帅二代么
    watermeter
        2
    watermeter  
       2020-07-25 16:25:54 +08:00 via Android
    很棒,支持
    uqin
        3
    uqin  
       2020-07-25 16:33:03 +08:00
    用爱发电 难得
    支持
    imn1
        4
    imn1  
       2020-07-25 16:34:38 +08:00
    恕我直言,我觉得难以挑战 HandBrake
    视频剪切,一般人应该最需要是可视,就是从哪个画面(起始帧)剪切到哪个画面(结束帧)
    目前来说,avidemux 做这个更佳

    不过,我觉得自己并不在 LZ 这产品的目标用户群内,似乎那些经常上传视频的人才是
    所以也不探讨更多细节了
    chroming
        5
    chroming  
       2020-07-25 16:36:03 +08:00 via iPhone
    不错不错
    xwhxbg
        6
    xwhxbg  
       2020-07-25 16:37:19 +08:00
    难得 ffmepg 终于有个简单点的 GUI 了,语音 2 字幕这个也很厉害了,等会试试自动转的情况下 align 能不能自动
    xinyana
        7
    xinyana  
       2020-07-25 17:16:44 +08:00 via Android
    可以
    ifxo
        8
    ifxo  
       2020-07-25 18:01:33 +08:00
    你要是能做一个取代爱剪辑的,还愁赚不到钱啊,爱剪辑早就收费了,而且掏了钱也带水印
    natforum
        9
    natforum  
       2020-07-25 18:27:39 +08:00
    建议上传到蓝奏云盘,这下载速度不行啊
    https://tvax2.sinaimg.cn/large/005QwKRQly1gh3e8gigpaj309j02djra.jpg
    515576745
        10
    515576745  
       2020-07-25 18:33:56 +08:00 via Android
    开源可以,话说不传 github 么
    NanJi
        11
    NanJi  
       2020-07-25 18:43:47 +08:00
    不错,支持下楼主,希望楼主能继续维护这个项目
    freelancher
        12
    freelancher  
       2020-07-25 20:57:08 +08:00
    我好累啊。看完全文不知道下载地址。。。。字数也太多了吧。
    Wolfsin
        13
    Wolfsin  
       2020-07-25 22:14:38 +08:00
    gitee 原来不登录就不能下载吗?
    刚好有需求,楼主的软件真的帮大忙了。
    Codelike
        14
    Codelike  
       2020-07-25 22:36:23 +08:00
    mortal
        15
    mortal  
       2020-07-25 23:16:32 +08:00
    @freelancher #12 第一句话的 Quick Cut 就是超链接…没注意吧
    gzlock
        16
    gzlock  
       2020-07-26 07:14:54 +08:00 via Android   ❤️ 1
    希望可以开源分享翻译后的 ffmpeg 文档
    siweipancc
        17
    siweipancc  
       2020-07-26 11:38:02 +08:00 via iPhone
    可以可以
    playniuniu
        18
    playniuniu  
       2020-07-26 11:58:01 +08:00 via iPhone
    支持支持
    seekfire
        19
    seekfire  
       2020-07-26 18:04:50 +08:00
    挺好的工具,支持一下
    kingba
        20
    kingba  
       2020-07-26 22:41:16 +08:00
    已打赏
    lbingl
        21
    lbingl  
       2020-07-26 23:36:15 +08:00 via Android
    楼主的开源精神和为开源社区做出的贡献值得学习!
    uestcfei
        22
    uestcfei  
       2020-07-27 08:39:54 +08:00
    求分享翻译后的 ffmpeg 文档+1
    JackalZhao
        23
    JackalZhao  
    OP
       2020-07-27 08:49:43 +08:00
    @uestcfei @gzlock FFmpeg 文档已公开,在附言第一条。


    @515576745 已传 Github https://github.com/HaujetZhao/QuickCut


    @natforum 已传蓝奏云,在 release 界面就有链接提示了。


    @imn1 我不做专业,我只做快捷,在 Quick Cut 里面处理视频,是最快捷的,符合普通人(不会剪辑的人)对简单处理一段视频的直觉,不用去学非编软件的操作。


    @kingba 非常感谢!!!!
    jifengg
        24
    jifengg  
       2020-07-27 10:46:17 +08:00
    ffmpeg 的相关开发,支持一下
    bojue
        25
    bojue  
       2020-07-27 11:27:51 +08:00
    厉害了,做成收费软件,这样才能发展的更好
    leavelet
        26
    leavelet  
       2020-07-27 12:30:21 +08:00
    @bojue 开源难道不行吗?
    houshuu
        27
    houshuu  
       2020-07-27 18:13:01 +08:00
    很棒!
    bojue
        28
    bojue  
       2020-07-27 22:30:29 +08:00
    @leavelet 起码国内不太靠谱,可以通过差异化付费模式,比如说学生免费使用,个人免费使用几个月其他需要收费,这样才能对作者的生活质量有一定的保证,要不然都是成名前的小龙哥
    leavelet
        29
    leavelet  
       2020-07-27 23:37:29 +08:00
    @bojue 没必要 这样违背了初衷
    我们觉得开源就挺合理
    几个学生 又不是主业 也不会是主业
    leavelet
        30
    leavelet  
       2020-07-27 23:40:32 +08:00
    @bojue 本人是 mac 端的打包者
    觉得轻量级 工作量并不大
    业余时间能承受
    Cyrix686
        31
    Cyrix686  
       2020-07-28 11:43:02 +08:00
    实用的工具!支持楼主!
    a6600648
        32
    a6600648  
       2020-07-28 19:07:52 +08:00
    实用工具 点赞
    xrr2016
        33
    xrr2016  
       2020-07-29 11:08:27 +08:00
    赞一个👍
    lifeee
        34
    lifeee  
       2020-08-10 20:35:32 +08:00
    支持支持 👍🏻
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2311 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 16:04 · PVG 00:04 · LAX 08:04 · JFK 11:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.