# FFMPEG GUI PyDracula
#
# 😊简介
> ❌**重要:** 本项目没有ffmpeg环境安装,需要用户自行解决ffmpeg的环境问题。能够在命令行识别到ffmpeg命令即可。❌
目前实现的功能:
* 命令窗口预览将要执行的命令,可以修改(懂ffmpeg命令的话,就可以自己修改执行指令)
* 转码视频文件
* 提取视频
* 视频二倍速
* 视频转MP3
* 批量转码功能
* 转码码率设置
* 转码速度设置
* 内挂字幕(仅限mkv格式)
* 内嵌字幕
* 自动切片(根据音频自动切出对应视频)
* 接入 Whisper 实现视频自动生成字幕(Whisper似乎对中文识别不是很好,容易识别成繁体中文)
未来期望实现功能:
* 更多的目标格式
* 多段视频拼接(感觉这个功能不是那么重要)
* whisper模型选择和下载
* whisper可以使用GPU加速
> Pyside打包是真的大啊,不知道有没有什么可以压缩这部分的方法。
# 软件界面
![PyDracula_Default_Dark](https://github.com/peach-water/ffmpeg-GUI-with-PyDracula/blob/master/gallery/dark_theme.png?raw=true)
![PyDracula_Light](https://github.com/peach-water/ffmpeg-GUI-with-PyDracula/blob/master/gallery/light_theme.png?raw=true)
# 🛠 以下为开发人员内容
## YouTube - 教程与帮助
关于修改用户界面以及理解项目的教程。
> 🔗 https://youtu.be/9DnaHg4M_AM
> 💥**警告**: 本项目使用 PySide6 和 Python 3.9 开发,使用较早的版本可能会出现兼容性问题。
## 高分辨率设置
> QT 控件是一项比较老的技术,不能较好的支持高DPI的设置。如果你的系统DPI设置高于100%,GUI界面的图像会被扭曲。
> 你可以用下面的方法,通过在"main.py"的Qt控件导入后加入这段代码来避免这个问题。
```python
from modules import *
from widgets import *
os.environ["QT_FONT_DPI"] = "96"
```
## 启动
> 在你的系统上按照'requirements.txt'安装环境,然后就可以使用下面的代码在终端中启动这个项目。
> ### **Windows**:
```console
python main.py
```
> ### **MacOS and Linux**:
```console
python3 main.py
```
## 编译
> ### 使用 Pyinstaller 编译 exe 项目
```console
pyinstaller -Dw ./main.py --copy-metadata tqdm --copy-metadata regex --copy-metadata requests --copy-metadata packaging --copy-metadata filelock --copy-metadata numpy --copy-metadata tokenizers --copy-metadata huggingface-hub --copy-metadata safetensors --copy-metadata pyyaml
```
> transformers库打包需要这一溜的metadata数据才可以正常运行,所以需要加上。
在那之前还需要使用命令 pip install pyinstaller==6.3.0 来安装打包环境。
更新的pyinstaller没有尝试。
编译成功后,在当前目录下可以找到"./dist/main/main.exe"文件,在启动之前还需要复制theme主题文件到"./dist/main",否则会因为找不到主题文件报错。类似的还有:
* 复制model文件到'./dist/main/_internal'目录下,自动剪辑和自动配字幕功能需要这个模型。
* 复制modules/whisper/文件夹到'./dist/main/modules/'目录下,配字幕需要这个功能
## 错误修复
### pyinstaller 打包时错误
如果打包python3.10出现 `tuple index out of range` 错误,去python可执行文件位置找到 `./Lib/dis.py` 修改 `_unpack_opargs` 函数为如下
```python
def _unpack_opargs(code):
extended_arg = 0
for i in range(0, len(code), 2):
op = code[i]
if op >= HAVE_ARGUMENT:
arg = code[i+1] | extended_arg
extended_arg = (arg << 8) if op == EXTENDED_ARG else 0
else:
arg = None
extended_arg = 0
yield (i, op, arg)
```
### 打包后错误
使用 pyinstaller 可以打包,但是启动程序时出现如下所示错误。
```shell
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 385, in exec_module
File "transformers\utils\import_utils.py", line 37, in <module>
logger = logging.get_logger(__name__) # pylint: disable=invalid-name
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "transformers\utils\logging.py", line 124, in get_logger
_configure_library_root_logger()
File "transformers\utils\logging.py", line 88, in _configure_library_root_logger
_default_handler.flush = sys.stderr.flush
^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'flush'
```
修改 transformers 库的 `src/transformers/utils/logging.py` 文件,加上如下有 `+` 标记的两行代码,
然后重新打包即可。
```python
def _configure has already_library_root_logger() -> None:
...
_default_handler = logging.StreamHandler()
+ if sys.stderr is None:
+ sys.stderr = open(os.devnull, "w")
_default_handler.flush = sys.stderr.flush
...
```
## 项目文件及文件夹
> **main.py**: 程序主文件.
> **main.ui**: 使用 Qt Designer GUI界面设计文件.
> **resouces.qrc**: Qt Designer 加载"main.ui"使用的图片资源(例如背景图,图标等),也需要加载以保证程序正确运行。使用 version 6 >
> **setup.py**: 编译项目为 Windows 可执行程序。
> **themes/**: 放你的主题文件 (.qss)。
> **modules/**: 本项目功能实现模块。
> **modules/app_funtions.py**: 原来的功能实现文件。
> **modules/btn_functions.py**: 软件功能实现文件。
> **modules/vad_functions.py**: 声音识别模块,来自snakers4/silero-vad。
> **modules/app_settings.py**: 用户交互界面全局设置文件。
> **modules/resources_rc.py**: "resource.qrc" 需要使用这条命令编译得到 ```pyside6-rcc resources.qrc -o resources_rc.py```。
> **modules/ui_functions.py**: 和用户交互界面相关函数实现。
> **modules/ui_main.py**: 由 Qt Designer 编译导出用户界面得到。你可以使用下面的命令手动导出本文件 ```pyside6-uic main.io -o ui_main.py```。导出以后需要把代码 "import resources_rc" 修改成 "from . resources_rc import *" 来导入资源文件。或者直接修改resources_rc.py文件的位置能够被python解释器找到也可以。
> **images/**: 在编译成资源文件resource_rc.py之前把项目需要使用的图像资源全部放到这里。
# 感谢
> 本项目从[PyDracula](https://github.com/Wanderson-Magalhaes/Modern_GUI_PyDracula_PySide6_or_PyQt6)修改而来。
> 感谢 Wanderson M. Pimenta 的 repository [PyDracula](https://github.com/Wanderson-Magalhaes/Modern_GUI_PyDracula_PySide6_or_PyQt6)。
> 感谢 snakers4 的 repository [Silero-vad](https://github.com/snakers4/silero-vad) 。
> 感谢 PINTO0309 的 repository [whisper-onnx-cpu](https://github.com/PINTO0309/whisper-onnx-cpu) 。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
功能: 命令窗口预览将要执行的命令,可以修改(懂ffmpeg命令的话,就可以自己修改执行指令) 转码视频文件 提取视频 视频二倍速 视频转MP3 批量转码功能 转码码率设置 转码速度设置 内挂字幕(仅限mkv格式) 内嵌字幕 自动切片(根据音频自动切出对应视频) 接入 Whisper 实现视频自动生成字幕(Whisper似乎对中文识别不是很好,容易识别成繁体中文) 启动 在你的系统上按照'requirements.txt'安装环境,然后就可以使用下面的代码在终端中启动这个项目。 Windows: python main.py MacOS and Linux: python3 main.py main.py: 程序主文件. main.ui: 使用 Qt Designer GUI界面设计文件. resouces.qrc: Qt Designer 加载"main.ui"使用的图片资源(例如背景图,图标等),也需要加载以保证程序正确运行。使用 version 6 > setup.py: 编译项目为 Windows 可执行程序。 themes/: 放你的主题文件 (.qss)。
资源推荐
资源详情
资源评论
收起资源包目录
基于 PyDracula 和 FFMPEG 制作的简易视频转码程序(Python) (314个子文件)
.gitignore 30B
icon.ico 210KB
vocab.json 914KB
vocab.json 779KB
english.json 55KB
tokenizer_config.json 604B
tokenizer_config.json 236B
special_tokens_map.json 90B
special_tokens_map.json 90B
config.json 63B
added_tokens.json 25B
LICENSE 1KB
README-en.md 7KB
README.md 7KB
mel_filters.npz 2KB
silero_vad.onnx 1.72MB
dark_theme.png 57KB
light_theme.png 56KB
PyDracula_vertical.png 29KB
PyDracula_horizontal.png 10KB
PyDracula2.png 3KB
cil-movie.png 2KB
cil-fingerprint.png 2KB
cil-size-grip.png 2KB
cil-airplane-mode-off.png 2KB
cil-volume-high.png 2KB
cil-low-vision.png 2KB
cil-layers.png 2KB
cil-mood-very-bad.png 2KB
cil-gamepad.png 2KB
cil-truck.png 2KB
cil-at.png 2KB
cil-people.png 2KB
cil-alarm.png 2KB
cil-mug-tea.png 2KB
cil-wifi-signal-4.png 2KB
cil-face-dead.png 2KB
cil-share-boxed.png 2KB
cil-arrow-circle-top.png 2KB
cil-print.png 2KB
cil-x-circle.png 2KB
cil-settings.png 2KB
cil-arrow-circle-bottom.png 2KB
cil-arrow-circle-right.png 2KB
cil-mood-very-good.png 2KB
cil-envelope-open.png 2KB
cil-mood-bad.png 2KB
cil-smile.png 2KB
cil-arrow-circle-left.png 2KB
cil-envelope-letter.png 2KB
cil-history.png 2KB
cil-check-circle.png 2KB
cil-speedometer.png 2KB
cil-image-plus.png 2KB
cil-mood-good.png 2KB
cil-frown.png 2KB
cil-meh.png 2KB
cil-chevron-circle-down-alt.png 2KB
cil-chevron-double-down.png 2KB
cil-rss.png 2KB
cil-voice-over-record.png 2KB
cil-chevron-circle-left-alt.png 2KB
cil-camera-roll.png 2KB
cil-chevron-circle-up-alt.png 2KB
cil-wifi-signal-off.png 2KB
cil-chat-bubble.png 2KB
cil-paint-bucket.png 2KB
cil-3d.png 2KB
cil-chevron-circle-right-alt.png 2KB
cil-clock.png 2KB
cil-task.png 2KB
cil-equalizer.png 2KB
cil-image1.png 2KB
cil-airplane-mode.png 2KB
cil-fire.png 2KB
cil-av-timer.png 2KB
cil-chevron-double-right.png 2KB
cil-chart-pie.png 2KB
cil-loop-1.png 2KB
cil-4k.png 2KB
cil-house.png 2KB
cil-cloud-upload.png 2KB
cil-dog.png 2KB
cil-library-add.png 2KB
cil-zoom-in.png 2KB
cil-volume-off.png 2KB
cil-wifi-signal-2.png 2KB
cil-satelite.png 2KB
cil-thumb-up.png 2KB
cil-user-unfollow.png 2KB
cil-speaker.png 2KB
cil-tags.png 2KB
cil-view-module.png 2KB
cil-thumb-down.png 2KB
cil-chevron-double-left.png 2KB
cil-briefcase.png 2KB
cil-hdr.png 2KB
cil-cloud-download.png 2KB
cil-zoom-out.png 2KB
cil-link-broken.png 2KB
共 314 条
- 1
- 2
- 3
- 4
资源评论
十小大
- 粉丝: 9137
- 资源: 2552
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功