Giter Site home page Giter Site logo

quickcut's Introduction

About Translation

English Mannual

Developer: My home language is Chinese, so the original UI is in Chinese, if you want to help translating this software, you can open the ./QuickCut/languages/README.md to check out how you can help.

icon.ico Quick Cut

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

Quick Cut 开源的,你可以免费使用它,但正因为开源,因此插入恶意代码是很容易的事,所以请认准仓库发行页面的下载地址:

Quick Cut 是用 Python 写的,所以我将 Quick Cut 也发布在了 pypi 库,只要你装了 python,使用 pip install Quick-Cut 就可以安装上 Quick Cut,不过 pypi 库中的版本没有自带 FFmpeg,需要你手动安装。(都会用 pip 安装东西了,相信安装 FFmpeg 就不用教了吧)

我没有 Win32 、MacOS、Linux 系统的电脑,所以这些系统打包不了。但你们可以通过 pip 方法安装。

Windows 系统用 pip 安装时,可能会遇到 pyaudio 的安装问题,可以参照 这篇文章 解决。

另外,每一个页面我都做了 视频教程,基本所有的问题看了视频都能解决,在主页面的预设列表下方有 查看预设帮助 按钮,有关于压制方面的帮助,可以解决你关于转码清晰不清晰的问题,也瞅瞅,所以不要连官方解答都不看,就无脑提问。

界面预览:

image-20200726203040942

📝 背景

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

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

  • 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
auditok @ git+https://github.com/amsehili/[email protected]
requests

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

Linux 的用户,经 @shniubobo 的测试,Ubuntu 用户在安装 pyaudio 前只要装这个就行了:

sudo apt install portaudio19-dev

其他包可以通过requirements.txt安装:

pip install -r requirements.txt

阿里云语音识别 sdk

然后还需要安装阿里云语音识别引擎的sdk, 这篇阿里云官方文档 只说了用下面的方法安装:

pip install setuptools

下载Python SDK

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

不过有用户反馈可以用下面这个命令直接安装,不过我还没试验:

pip install aliyun-python-sdk-nls-cloud-meta

运行问题:

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

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

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

Mac 和 Linux 用户请注意:

为了在 Windows 上运行时候不弹黑窗口,我在用 subprocess 的时候用了一个 subprocess.STARTUPINFO() 类,但是在 Linux 或 Mac 上好像不能用它,所以你们在使用前,要删除几段代码:

首先是末尾的这三行:

subprocessStartUpInfo = subprocess.STARTUPINFO()
subprocessStartUpInfo.dwFlags = subprocess.STARTF_USESHOWWINDOW
subprocessStartUpInfo.wShowWindow = subprocess.SW_HIDE

然后再全局搜索 , startupinfo=subprocessStartUpInfo 将其删掉。理论上就好了。

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

使用 nuitka 编译:

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

先下载安装上 MinGW64 8.1

再安装上 nuitka:

pip install nuitka

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

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 对于某些包并不会自动导入,还需要你手动导入才行。

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

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 复制到编译导出的文件夹,没有图标文件的话,就无法启动托盘。

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

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

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

如果你是 Mac 编译,为了图标格式兼容,要使用:

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.icns --nofollow-imports --assume-yes-for-downloads --output-dir=out QuickCut.py

pyinstaller 编译:

先安装上 pyinstaller :

pip install pyinstaller

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

pyinstaller --hidden-import pkg_resources.py2_warn --noconfirm -w -i icon.ico QuickCut.py

如果你是 Mac 编译,为了图标格式兼容,要使用:

pyinstaller --hidden-import pkg_resources.py2_warn --noconfirm -w -i icon.icns QuickCut.py

其中,--hide-import pkg_resources.py2_warn 这一句比较重要,其实整个软件用到了这个模块,但是 pyinstaller 没有自动编译进去。当你电脑上的 setuptools 版本在 45.0.0 到 49.1.1 之间时,会出现这个问题。将 setuptools 升级到最新,应该就不会有这个问题了:

pip install pyinstaller
pip install setuptools --upgrade
pyinstaller -wy -i icon.ico QuickCut.py  # Windows 用户用这个
pyinstaller -wy -i icon.icns QuickCut.py # 为了图标格式兼容,Mac 用户请用这个

编译后打包后要做的事

编译完成后,还有几个事要做,首先,下载对应系统的 ffmpeg 和 ffprobe 放到编译根目录,再把本 README.md 导出成 README.html ,同 icon.icosponsor.jpglanguages 一起放入编译根目录(Mac 用户放 icon.icns),再下载对应系统的 annie 放入编译根目录。

如果是 Mac 、Linux 打包的,那一定要给编译目录下的可执行文件用 chmod +x 授予可执行权限!

然后就可以打包了,Windows 下可以打包成 7z 格式,Mac、Linux 用户不要打包 zip7z 格式!因为这会让可执行文件的权限消失!Mac、Linux 用户可以用 tar.gz 或者 dmg 格式打包。

建议打包后的命名成类似 QuickCut_Mac_v1.2.0_pyinstaller.dmg 这样的。如果你是志愿者,为这个项目打包,你也可以在命名后面加上你的 id 等信息。

在发包的时候,建议上传到蓝奏云、天翼云,新建一个文件夹,将包放到这个文件夹里,再把这个文件夹的分享链接发出来,这样,以后要更新的话,只要把新版本放到那个文件夹,分享链接就不用变了。

你可以将打包好的云盘文件夹链接发给作者,作者会把这个链接放到 release 页面。

☕ 打赏

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

sponsor

😀 交流

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

🙏 鸣谢

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

quickcut's People

Contributors

haujetzhao avatar leavelet avatar pzhlkj6612 avatar shniubobo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

quickcut's Issues

-qscale-qscale

发现一个问题(mb指MB)
原视频h264,710mb,标准4k,96fps
运行-c:v hevc_nvenc -qscale 1 -b:a 256k
变成9mb
运行-c:v hevc_nvenc -qscale 225 -b:a 256k
变成1.51GB............
在使用硬件加速编码器的时候,控制输出视频的质量是使用 qscale 参数,他的数值可以从 0.1 - 255 不等,数值越小,画质越高,码率越大,输出文件体积越大

是我理解有问题么?我语文确实不行......

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'D:/春日野穹.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
encoder : Lavf58.61.100
Duration: 00:02:01.00, start: 0.000000, bitrate: 49290 kb/s
Stream #0:0(und): Video: mpeg4 (Simple Profile) (mp4v / 0x7634706D), yuv420p, 3840x2160 [SAR 1:1 DAR 16:9], 49287 kb/s, 96 fps, 96 tbr, 12288 tbn, 96 tbc (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Please use -q:a or -q:v, -qscale is ambiguous
Codec AVOption b (set bitrate (in bits/s)) specified for output file #0 (D:/春日野穹_out.mp4) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
Stream mapping:
Stream #0:0 -> #0:0 (mpeg4 (native) -> hevc (hevc_nvenc))
Press [q] to stop, [?] for help
[hevc_nvenc @ 0000013b37cc0540] Using global_quality with nvenc is deprecated. Use qp instead.
Output #0, mp4, to 'D:/春日野穹_out.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2mp41
encoder : Lavf58.76.100
Stream #0:0(und): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(progressive), 3840x2160 [SAR 1:1 DAR 16:9], q=2-31, 2000 kb/s, 96 fps, 12288 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
encoder : Lavc58.134.100 hevc_nvenc
Side data:
cpb: bitrate max/min/avg: 0/0/2000000 buffer size: 4000000 vbv_delay: N/A
frame= 1 fps=0.0 q=0.0 size= 0kB time=00:00:00.00 bitrate=N/A speed= 0x
...................................................
frame=11589 fps=109 q=50.0 size= 1580032kB time=00:02:00.53 bitrate=107388.0kbits/s speed=1.13x
frame=11616 fps=108 q=50.0 Lsize= 1585869kB time=00:02:00.95 bitrate=107404.2kbits/s speed=1.13x
video:1585753kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.007309%

啥时候有批量转码功能

小丸工具箱里面有个很方便的功能,批量转码,好多视频扔里面就能转码,你这个我查了一下,没有很直观的窗口进行,只有一个批处理,能否增加一个引导呀

启动时报错 qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.

$ quickcut
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb.

[1]    4202 abort      quickcut

应该安装成功了,请问这个问题如何解决呢?我还需要提供什么信息?

建议增加计划功能

比如我分段合并(剪切)设置好之后,选择计划运行,就将命令行储存起来,然后有100个计划,我可以一起运行,这样子不知可否做到。

macOS pip 安装报错


ERROR: Failed building wheel for pyaudio
Running setup.py clean for pyaudio
Failed to build pyaudio
Installing collected packages: you-get, auditok, pyaudio, pymediainfo, youtube-dl, Quick-Cut
Running setup.py install for pyaudio ... error

求更新!!!

annie已更名lux,下载视频选择文件夹无法在下次打开的时候保存,求大佬继续更新!!!

历史记录

记住路径等参数的历史设置,下次打开能够减少重复操作

一些具体的代码重构建议

首先感谢一下作者写的程序。以前有时候想要剪一小个片段或者扒一段音频,开pr感觉是杀鸡用牛刀,用FFmpeg又经常忘记具体选项还得查文档,这个程序可以说是十分实用了。

但我在读代码的时候觉得读起来有些困难,有些人可能想要贡献代码但一看代码这么多就望而却步了,我想了一些可以改进代码的建议,如果作者愿意采纳,对于每一条建议我都愿意提供帮助:

  • 把代码按功能分到多个模块中(现在的将近七千行代码读起来实在太费劲啦🤣),这样可以:
    • 使代码更易读
    • 方便维护
    • 促使解耦各个部分的代码
  • 使用Qt Designer绘制UI并保存为.ui文件,运行时使用PyQt5.uic.loadUi导入(详见这里)而不是提前用pyuic5转换,这样可以:
    • 写代码时使用Qt Designer更直观地展现UI
    • 便于修改UI
    • 将UI的绘制与其他功能代码解耦
  • 改写代码中的注释以及变量名为英文,这样可以:
    • 方便不会中文的人阅读代码
    • 使更多人(也就是不会中文的人)能够贡献代码
  • 尽量使代码符合PEP8中文译文)规范,这样可以:
    • 使代码更易读
    • 便于其他人贡献代码,毕竟大多人都是习惯根据PEP8写代码的

当然,现在的代码即使不重构也可以完美运行,而且要做完上面的每一条工作量巨大,代码改动太大可能主版本号都能加一两个数字了。但是如果不重构,随着将来代码量的增加维护会变得越来越困难,趁早进行重构可以防止将来想要重构而愈发无从下手;同时重构虽累,但如上文所说,这会带来很多的好处。

最后,是否愿意采纳这些建议当然还要看作者你的意思,但只要采纳,对于其中的每一条我都愿意提供帮助。

盗窃锁定键??

readme里面“语音识别输入界面”里面长按键盘上的盗窃锁定键超过0.3秒钟,还以为是什么梗,原来是大写锁定键

语音输入存在识别结果和输入结果不一致的问题

利用语音输入功能进行输入时,发现控制台能够正确显示识别结果,但是光标写入word文件的是错误的结果
识别结果:
image

输入word文档结果:
image

此问题目前仅发现出现在对word文件的输入上,时而正常、时而不正常
测试环境:win10 企业版 1909
测试软件:office 365 word
软件版本:V1.6.10

目前尝试各种不成功……

尝试时用的前一个版本,现在更换成最新版也不行……
先尝试把一个4、5个小时的mp3按1小时为单位(填写的3600)分割成多个,结果只出来了一个结果文档,时长和原来一样……
自己命令行解决了。

然后,尝试通过阿里API实现mp3转成文字,先弄API添加一类的
点了加号,也添加了,而且在视频转文资那个界面里面也能够看到添加的API,但是在设置里面就是不出现,不过还算能用……
继续尝试,mp3转文字。
前面n多次命令行输出窗口里面都是有内容的,比如提示API设置不成功啊,建议修正阿里那边的配置啊,或者前面那个切音频时的显示内容。这回却什么都没有,一直都是白白的上下两个窗体,等了很久,很久,依旧什么都没有……

佩服大佬,用Python写GUI,我是尝试了几次都放弃了,用Python写GUI实在太痛苦。

如题,本人学财务的,业余爱好学了python,又去瞟了一眼其他语言,还是python最简单,但是python写GUI真是太痛苦了,如果仅仅是为了调用ffmpeg,还不如用aardio写GUI,大佬可以尝试~不过这个项目我可以参考来练习python写GUI。。。。
另外,可以增加时间区域剪辑嘛,这样可以把要收藏的视频开头的广告时间去掉,等等

代码能改写成B/S架构?

认真看了您的代码,看能否改造成基于Flask或fastapi的B/S架构?个人认为在使用的时候会更方便。

Windows路径问题

del命令的路径分隔符是 '/' 会出现错误,Windows路径是 '\'

UI字体建议

发现Windows下中文界面字体是宋体,而不是微软雅黑 UI,个人觉得看起来有些难受,能否考虑把宋体替换成微软雅黑或提供修改界面字体的选项

Readme中的别字etc.

这篇文章大部分都是用这个语音识别功能打的,然后修改了少量错字

—— 既然这readme是由语音识别生成的,那咱就顺便将发现的几处不通顺的地方指出来好了:

  1. ... 应用之广泛到惊了我的下巴 --> 『惊掉了』?
  2. ... 上传音频便足 --> 足『
  3. ... 爽不要不要的 --> 爽『
  4. ... 你们是你们觉得 --> 多了一次『你们』?
  5. ... 可以放心放到后台 --> 放心『
  6. ... 在帮助见面里 --> 『界面
  7. ... 直接到 这里 下载它已经被志愿者 --> 多了个『』?

功能建议

建议增加删除指定长度/帧数的片头/片尾的功能

「建议」开机自启动&启动最小化

阿里云的语音识别真的功能太棒了,主要用的是语音输入功能,希望开机后台常驻。

希望增加两个功能:

  1. 开机自启动;
  2. 启动自最小化。

ffmpeg页面“出错了,本次运行的命令是”

问题:
指令中如果出现中文字符,会出现“命令执行出错,可能是系统没有安装必要的软件,如 FFmpeg, you-get, youtube-dl 等等”的提示,但ffmpeg其实正常安装了,或:

出错了,本次运行的命令是:

各种命令……

你可以将上面这行命令复制到 cmd 窗口运行下,看看报什么错,如果自己解决不了,把那个报错信息发给开发者

并在cmd窗口中相同的指令可以正常执行

原因:

  1. 指令中的中文字符会导致编码错误
  2. 旧版本的ffmepg无法正常显示utf-8字符

代码中的问题已找到修复方法,稍后发pr

除了修复代码中的问题外,ffmpeg也需要更新到最新版本

UI优化建议

针对第一个标签页(ffmpeg),希望对UI做一些优化,比如:

  1. 某些预设参数没有填写帮助的内容,此时“查看该预设帮助”按钮变为灰色不可用状态;或者在UI上增加帮助内容的预览,如果看不到预览的内容,用户也就不去尝试查看帮助了。
  2. 为预设增加分组功能,分组之间有分割线或者缩进,方便定位;或者在UI上增加预设参数筛选,这样可以快速定位到需要的参数预设上。
  3. 目前从UI上看不到预设参数修改、增加、删除、排序之后保存到哪里。希望增加一个预设参数导出导入的功能;或者提示参数保存在哪里

软件协议

这是一个很好的软件,也看得出来你花了很多心血。我非常希望20年后这个软件依旧有最基本的库/接口更新的维护。

没搞错的话你还是个学生,等你毕业可能会忙于生计。如果不冲突的话,建议把协议改成MPL之类的协议。虽然这在国内更像是君子协定,但是起码你也是对自己的努力作了一定保护,避免被无良公司或者公司的无良员工复制黏贴。说不定以后还能为你创造一笔收入(笑)。

加油喔~

建议增加批量处理选项

首先感谢这么牛逼简单快速的软件。之前截取视频要几分钟,现在只要1秒,真的是1秒。
我经常会下载动画片然后去掉片头片尾的广告给我儿子看,能否给出个批量截取片段的功能。

Linux 中关闭弹出的窗口,导致程序甚至系统崩溃

如何复现

启动程序,随意输入一些指令,点击运行。点击“命令运行输出窗口”右上角的❌。

应该发生什么

只有“命令运行输出窗口”关闭。

实际发生了什么

程序终止:
图片
如果运行编译好的文件,重复上述步骤甚至会导致系统崩溃并重启。

其他信息

  • 没有产生日志文件
  • 系统:Ubuntu 18.04
  • QuickCut 版本: 4fbfb56
  • Python 版本:3.8.5

english version ?

Hi,
First of all, nice work you've done.
Planning any english/translated version ?

I can participate in translation.

可以增加一个调整srt字幕文件时间轴偏移量的功能吗?

比如这个
1

似乎 ffsubsync也处理不了偏移量较大的srt字幕文件,我知道现在很多播放器内置有字幕时间轴调整项,vlc player 本身更有热键支持(shift+h/J/K),只可惜都不能够导出到本地,我想利用QuickCut应该可以实现的吧,期待您的回复!

mac上pip安装了跑不起来

mkvirtualenv --python=python3 quickcut
pip install Quick-Cut

安装完之后执行Quick-Cut会提示如下

(quickcut) /usr/local ./bin/Quick-Cut
Traceback (most recent call last):
  File "./bin/Quick-Cut", line 5, in <module>
    from QuickCut.QuickCut import main
  File "/usr/local/lib/python3.8/site-packages/QuickCut/QuickCut.py", line 23, in <module>
    import pymediainfo
ModuleNotFoundError: No module named 'pymediainfo'

但是pymediainfo这个是已经安装了的,奇怪

README.md中几处(或许)需要修改的地方

  1. 新加的languages文件夹没有包括在“编译后打包后要做的事”里,不加这个文件夹会出错:

    FileNotFoundError: [WinError 3] 系统找不到指定的路径。: './languages'
    
  2. 现在运行pyinstaller已经不需要--hidden-import pkg_resources.py2_warn这个选项了,这个问题已经在新版本的setuptools中修复了(见 pypa/setuptools#1963 (comment) ),会出这个问题的版本是setuptools>=45.0.0,<49.1.1。

    保留README.md里的原文当然没有问题,但也可以选择改为这样:

    先安装上pyinstaller并确保setuptools为最新版本

    pip install pyinstaller
    pip install setuptools --upgrade
    

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

    pyinstaller -wy -i icon.ico QuickCut.py
    

    如果你是 Mac 编译,为了图标格式兼容,要使用:

    pyinstaller -wy -i icon.icns QuickCut.py
    

    经测试,在 Windows 10 中,Python=3.8.3, pyinstaller=3.6, setuptools=49.2.0的情况下,以及在 Ubuntu 18.04 中,Python=3.8.5, pyinstaller=3.6, setuptools=49.2.0的情况下,编译出的文件可以正常执行。

  3. README.md中的pyaudio下载地址只提供了Windows的.whl文件,Linux和Mac OS应该没法用。

    我测试用的是Ubuntu 18.04,pyaudio的依赖只有一个包,装pyaudio前运行这个即可:

    sudo apt install portaudio19-dev
    

    不过没法确定其他发行版以及Mac OS是否也是如此。

因磁盘空间不足导致的失败没有针对性报错信息

使用自动剪辑功能,长视频临时文件夹要求的空间较大,还是有可能意料之外地因此在最后阶段失败; 让人白跑1个多小时。
建议事先预警,或在出错后提示的可能原因加上这一条。

另外不知道为什么每次临时文件夹都自动删除失败…

you-get和you-dl下载视频

默认的保存路径、Cookie、代理等设置无法保存,每次打开都得改一遍,很蛋疼啊,能弄个ini文件自动保存吗?

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.