Script de Python para unir automáticamente archivos de video y audio utilizando FFmpeg. Este script procesa carpetas con archivos de video y sus correspondientes pistas de audio por separado, generando videos finales con ambos elementos combinados.
Antes de usar este script, asegúrate de tener instalado:
- Python 3.7 o superior
- FFmpeg (instalado en el sistema)
brew install ffmpegsudo apt update
sudo apt install ffmpeg- Descarga FFmpeg desde https://ffmpeg.org/download.html
- Extrae el archivo y añade la carpeta
binal PATH del sistema
# Navegar al directorio del proyecto
cd unir-video-audio
# Crear el entorno virtual
python3 -m venv video
# Activar el entorno virtual
# En macOS/Linux:
source video/bin/activate
# En Windows:
video\Scripts\activatepip install -r requirements.txtEl script espera la siguiente estructura de directorios:
unir-video-audio/
├── main.py
├── requirements.txt
├── README.md
├── originales/ # Carpeta con archivos fuente
│ ├── 01/
│ │ ├── video.mp4 # Archivo de video principal
│ │ └── video-audio.mp4 # Archivo de audio (debe contener "-audio" en el nombre)
│ ├── 02/
│ │ ├── otro_video.mp4
│ │ └── otro_video-audio.mp4
│ └── ...
└── output/ # Carpeta de salida (se crea automáticamente)
├── 01/
│ └── video_final.mp4
├── 02/
│ └── video_final.mp4
└── ...
- Los archivos de audio deben contener
-audioen su nombre - Los archivos de video no deben contener
-audioen su nombre - Todos los archivos deben tener extensión
.mp4 - Las subcarpetas pueden tener cualquier nombre (01, 02, episodio1, etc.)
source video/bin/activatepython main.py🎬 Uniendo: Video_1.mp4 + Video_1-audio.mp4
✅ Guardado en: output/01/video_final.mp4
🎬 Uniendo: Video_2.mp4 + Video_2-audio.mp4
✅ Guardado en: output/02/video_final.mp4
⚠️ Saltando carpeta 03, falta video o audio
El script realiza las siguientes operaciones:
- Escanea la carpeta
originales/buscando subcarpetas - Identifica archivos de video y audio en cada subcarpeta:
- Video: cualquier archivo
.mp4que NO contenga-audio - Audio: cualquier archivo
.mp4que SÍ contenga-audio
- Video: cualquier archivo
- Combina video y audio usando FFmpeg con estos parámetros:
vcodec='copy': Copia el video sin recodificar (más rápido)acodec='aac': Convierte el audio a formato AAC
- Guarda el resultado en
output/[nombre_carpeta]/video_final.mp4
# Modificar estas líneas en main.py
input_root = Path("tu_carpeta_origen")
output_root = Path("tu_carpeta_destino")# Modificar esta línea en main.py
output_file = output_folder / "tu_nombre_personalizado.mp4"# Modificar estos parámetros en main.py
.output(video_stream, audio_stream, str(output_file),
vcodec='libx264', # Para recodificar video
acodec='mp3') # Para usar MP3 en lugar de AAC- Asegúrate de que FFmpeg esté instalado y en el PATH del sistema
- Verifica la instalación:
ffmpeg -version
- Verifica que la carpeta
originales/exista - Confirma que los archivos tengan extensión
.mp4
- Asegúrate de que cada carpeta tenga exactamente un archivo de video y uno de audio
- Verifica que el archivo de audio contenga
-audioen el nombre
- Asegúrate de tener permisos de escritura en la carpeta del proyecto
- En sistemas Unix, puedes usar:
chmod +x main.py
- Velocidad: El script usa
vcodec='copy'para evitar recodificar el video, lo que hace el proceso mucho más rápido - Calidad: No hay pérdida de calidad en el video al usar copy
- Compatibilidad: Los archivos resultantes son compatibles con la mayoría de reproductores
- Memoria: El proceso es eficiente en memoria ya que FFmpeg trabaja por streaming
- Español (Spanish) - Versión en español
- English - English version
Si encuentras algún problema o tienes sugerencias de mejora, no dudes en crear un issue o pull request.
Este proyecto es de código abierto y está disponible bajo la licencia MIT.