Conversor de anime a resoluciones ligeras (360p/480p/720p/1080p) con FFmpeg
Project description
🎬 Anime Light
Conversor optimizado de anime a resoluciones ligeras (360p/480p/720p/1080p) usando FFmpeg.
Bueno, esta es una solución para las personas que, como yo, tienen realmente poco espacio de almacenamiento pero, aún así, no quieren deshacerse de todos los archivos que tienen. Lo principal para mi era poder hacer streaming de los anime que descargo para Jellyfin, sobre todo a mi teléfono... razón por la cual, no siempre requiero archivos en 1080p, y 480p-720p suele ser un estpandar de calidad aceptable para mi... pero encontrar archivos en 480 o en 720 ligeros (algo que en el anime, que tiene muchos frames fijos o con pocos cambios) es dificil últimamente, así que quise implementar esta solución y me ha funcionado muy bien. Lo siguiente fue implementarla en forma de CLI!
La librería implementa una cli para convertir archivos de anime (esto es importante, está optimizado para este estilo, ya que el anime se caracteriza por tener muchas imágenes estáticas entre frame y frame y manejar una tasa de unos 24 cuadros por segundo). Se puede usar tanto como librería como mediante la CLI. De momento se puede convertir a 360p, 480p, 720p y 1080p (es decir, SD y HD).
Sin más, espero que les parezca útil y, si se les ocurre alguna cosa que agregar, estaré encantado de aceptar colaboraciones y/o sugerencias!
🚀 Instalación
Requisitos previos
- FFmpeg instalado y en tu
PATH.# En Linux/macOS (usando Homebrew): brew install ffmpeg # En Windows (usando Chocolatey): choco install ffmpeg
Instalar el paquete
pip install anime-light
💻 Uso básico
Comandos principales
| Comando | Descripción |
|---|---|
anime-light "video.mp4" |
Convierte a 480p (calidad predeterminada) |
anime-light "video.mkv" --resolution 720p |
Convierte a 720p |
anime-light "carpeta/" --crf 25 |
Procesa todos los videos en una carpeta |
Opciones avanzadas
# Convertir a 720p con máxima compresión (archivos pequeños)
anime-light "episodio.mp4" --resolution 720p --crf 26 --preset veryslow
# Especificar directorio de salida personalizado
anime-light "video.mp4" --output-dir "D:/anime_convertido"
# Audio de baja calidad (para ahorrar espacio)
anime-light "video.mp4" --audio-bitrate 64k
Sobre uso de GPU
He estado intentando agregar soporte para el manejo de GPU, pero la verdad no sé si esa parte está funcionando bien. En todo caso, podrán probar con opciones como:
-
Para Intel QSV:
anime-light "video.mp4" --use-gpu qsv
-
Para NVIDIA CUDA:
anime-light "video.mp4" --use-gpu cuda
Métodos según GPU que están incluídos en el código
| GPU | Método óptimo | Argumento |
|---|---|---|
| Intel HD 4xxx+ | QSV | --use-gpu qsv |
| NVIDIA | CUDA | --use-gpu cuda |
| AMD (Linux) | VAAPI | --use-gpu vaapi |
| AMD (Windows) | D3D11VA | --use-gpu d3d11va |
Sinceramente, estoy desarrollando esto en un equipo algo viejo y limitado (un i3 de 4ta), así que el primer caso, el de una GPU Intel integrada es l oque disponía, pero si les soy sincero, no he logrado determinar si estoy usando bien los recursos (o si, siquiera, los estoy empleando)... si alguien con más experiencia y conocimientos al respecto está dispuesto a chequear o mejorar esa parte, bienvenida sea la PR!
📊 Tabla de parámetros recomendados
| Resolución | CRF Recomendado | Preset | Uso típico |
|---|---|---|---|
| 360p | 26-28 | fast |
Móviles o streaming limitado |
| 480p | 23-25 | slow |
Equilibrio calidad-tamaño |
| 720p | 20-22 | slow |
HD en pantallas pequeñas |
| 1080p | 18-20 | slower |
Full HD en monitores grandes |
ℹ️ Nota: Valores CRF más bajos = mejor calidad pero mayor tamaño.
🛠️ Ejemplos prácticos
1. Convertir un solo archivo
anime-light "Onepiece_Ep1000.mp4" --resolution 480p --crf 24
Estructura de salida:
./Onepiece_Ep1000[480p].mp4
2. Procesar una carpeta completa
anime-light "~/anime/Shingeki_no_Kyojin/" --resolution 720p --output-dir "~/converted"
Estructura de salida:
~/converted/
└── 720p/
├── Shingeki_no_Kyojin_Ep1[720p].mp4
├── Shingeki_no_Kyojin_Ep2[720p].mp4
└── ...
📌 Notas importantes
- ✅ Formatos soportados:
.mp4,.mkv,.avi,.mov. - ⚠️ Espacios en rutas: Usa comillas:
"ruta con espacios/video.mp4". - 🔄 Sobrescritura: Los archivos existentes se sobrescriben automáticamente en el output, pero no se toca los archivos originales. Se genera un directorio "temp" para evitar posibles conflictos y no contaminar el directorio de salida.
🐛 Reportar problemas
¿Encontraste un error? ¡Abre un issue en GitHub!
📜 Licencia
MIT © Gabriel Baute
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file anime_light-0.3.1.tar.gz.
File metadata
- Download URL: anime_light-0.3.1.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41bdcd48d7eaf917726881c2e4c90c2879876ec989c3c424a61e81ec760ee194
|
|
| MD5 |
fa682f77b21d27982150ab47ecc1f958
|
|
| BLAKE2b-256 |
862b2252dcda6d08b7f410e8502ed36320bcfa2a3a3a12957989561c0ca0ac29
|
File details
Details for the file anime_light-0.3.1-py3-none-any.whl.
File metadata
- Download URL: anime_light-0.3.1-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bbf357f105a6f58d69d8a3b94f45cddd3d2eb8b36f395c200591a1282d122102
|
|
| MD5 |
c646c8e3e2681b9179419f2517f7d515
|
|
| BLAKE2b-256 |
61547059df6c9523c99d82fe0316dd01fce84950e384b37335f741a5539aecd1
|