Compare commits

..

5 commits

2 changed files with 22 additions and 44 deletions

5
.gitignore vendored
View file

@ -216,3 +216,8 @@ __marimo__/
# Streamlit # Streamlit
.streamlit/secrets.toml .streamlit/secrets.toml
.vscode/
.idea/
.cursor/
.windsurf/
.claude/

View file

@ -1,13 +1,15 @@
# nodex.pw converter # nodex.pw converter
![license](https://img.shields.io/github/license/savsisbtw/nodex.pw-convertor)
конвертирует всё что возможно — картинки, видео, аудио, архивы конвертирует всё что возможно — картинки, видео, аудио, архивы
веб-интерфейс, drag & drop, ctrl+v, автоопределение форматов веб интерфейс, drag and drop, ctrl v, автоопределение форматов
--- ---
## что нужно ## что нужно
- python 3.10+ - python 3.10
- ffmpeg (для видео и аудио, см. ниже) - ffmpeg (для видео и аудио, см. ниже)
--- ---
@ -18,7 +20,7 @@
pip install -r requirements.txt pip install -r requirements.txt
``` ```
ffmpeg на **windows** — скачается сам при первом запуске (кнопка в шапке) ffmpeg на **windows** скачается сам при первом запуске
или вручную: или вручную:
``` ```
@ -51,32 +53,32 @@ python app.py
**изображения** **изображения**
| формат | → | | формат |
|--------|---| |--------|
| jpg, png, webp, bmp, gif, tiff, ico, avif, heic | любой из этих | | jpg, png, webp, bmp, gif, tiff, ico, avif, heic | любой из этих |
webp → png, heic → jpg, gif → webp — всё работает через pillow webp в png, heic в jpg, gif в webp всё работает через pillow
**видео** **видео**
| формат | → | | формат |
|--------|---| |--------|
| mp4, avi, mov, mkv, webm, flv, wmv, m4v... | mp4, avi, mov, mkv, webm, gif | | mp4, avi, mov, mkv, webm, flv, wmv, m4v | mp4, avi, mov, mkv, webm, gif |
| любое видео | mp3, wav, flac, aac, opus (вытащить аудио) | | любое видео | mp3, wav, flac, aac, opus (вытащить аудио) |
**аудио** **аудио**
| формат | → | | формат |
|--------|---| |--------|
| mp3, wav, flac, ogg, m4a, opus, aac, wma, aiff | любой из этих | | mp3, wav, flac, ogg, m4a, opus, aac, wma, aiff | любой из этих |
**архивы** **архивы**
| формат | → | | формат |
|--------|---| |--------|
| zip, tar.gz, tar.bz2, tar.xz, 7z, rar | zip, tar.gz, tar.bz2, 7z | | zip, tar.gz, tar.bz2, tar.xz, 7z, rar | zip, tar.gz, tar.bz2, 7z |
для rar нужен системный `unrar` — `apt install unrar` для rar нужен системный `unrar` `apt install unrar`
7z работает без внешних зависимостей (py7zr) 7z работает без внешних зависимостей (py7zr)
--- ---
@ -85,37 +87,8 @@ webp → png, heic → jpg, gif → webp — всё работает через
1. открываешь браузер 1. открываешь браузер
2. кидаешь файл в зону или нажимаешь "выбери файлы" 2. кидаешь файл в зону или нажимаешь "выбери файлы"
3. ctrl+v — вставить картинку из буфера (скриншоты работают) 3. ctrlv вставить картинку из буфера (скриншоты работают)
4. выбираешь целевой формат 4. выбираешь целевой формат
5. жмёшь конвертировать, скачиваешь 5. жмёшь конвертировать, скачиваешь
---
## структура
```
app.py — сервер flask, эндпоинты upload/convert/download
converter.py — логика конвертации (pillow + ffmpeg + архивы)
templates/
index.html — фронт
static/
style.css
app.js
uploads/ — временные загрузки
outputs/ — результаты
ffmpeg/ — ffmpeg.exe / ffprobe.exe (windows)
requirements.txt
```
---
## зависимости
```
flask — веб-сервер
pillow — изображения
py7zr — 7z архивы (чистый python)
rarfile — rar архивы (нужен системный unrar)
```
ffmpeg ставится отдельно — через пакетный менеджер или кнопку в интерфейсе