FFMpeg-Compressor: Use ffmpeg-python and Pillow instead of ffmpeg cli

This commit is contained in:
OleSTEEP 2023-11-16 01:26:23 +03:00
parent e48b7599d1
commit 37ff1f78b3
6 changed files with 126 additions and 125 deletions

View file

@ -9,17 +9,18 @@ Python utility uses ffmpeg to compress Visual Novel Resources
### Configuration
#### FFMPEG section
* FFMpegParams - Some parameters & flags for ffmpeg command line interface (default: `"-n -hide_banner -loglevel quiet"`)
* CopyUnprocessed - Copy all files that failed to compress by ffmpeg to destination folder. In can helps to recreate original folder, but with compressed files.
* MimicMode - Rename compressed file to it original name and extension. VN engines determine the file type by its header, so for example PNG file named file.jpg will be loaded as PNG file. (default: `false`)
* HideErrors - Hide some errors about compression. (default: `false`)
* WebpRGBA - Alpha channel in webp. If false switches extension to png. (default: `true`)
#### AUDIO section
* Extension - Required audio file extension. It supports: `.aac`, `.flac`, `.m4a`, `.mp3`, `.ogg`, `.opus`, `.raw`, `.wav`, `.wma`.
* BitRate - (mp3 only, for now) Required audio bitrate. For best quality use `320k` value, but for worse use `1-9` (9 worst) number range.
#### IMAGE section
* Extension - Required image file extension. It supports: `.apng`, `.avif`, `.bmp`, `.jfif`, `.pjpeg`, `.pjp`, `.svg`, `.webp`, `.jpg/.jpeg`, `.png`, `.raw`
* CompLevel - Compression level for images. Values range: `0-100` (100 - max compression, 0 - min compression)
* Extension - Required image file extension. It supports: `.apng`, `.avif`, `.bmp`, `.tga`, `.tiff`, `.dds`, `.svg`, `.webp`, `.jpg/.jpeg`, `.png`
* Quality - Quality level of images. Values range: `0-100` (100 - best quality, 0 - worst quality)
#### VIDEO section
* Extension - Required image file extension. It supports: `.3gp`, `.amv`, `.avi`, `.gif`, `.m2l`, `.m4v`, `.mkv`, `.mov`, `.mp4`, `.m4v`, `.mpeg`, `.mpv`, `.webm`, `.ogv`
@ -28,5 +29,5 @@ Python utility uses ffmpeg to compress Visual Novel Resources
### TODO (for testing branch)
* [x] Recreate whole game directory with compressed files
* [ ] Cross platform (Easy Windows usage and binaries, MacOS binaries)
* [ ] Use ffmpeg python bindings instead of cli commands
* [x] Use ffmpeg python bindings instead of cli commands
* [ ] Reorganize code