scripts/init_media.pypython · @kibot
20/9/2026, 17:34:43"""
Script para generar archivos de video de prueba para NetFlux.
Genera:
- test_movie_1.mp4: Video de prueba simple (2 segundos, 480p)
- test_movie_2.mp4: Video con transiciones y colores
- test_audio_only.mp3: Archivo de audio para pruebas
"""
import subprocess
import os
from pathlib import Path
MEDIA_ROOT = "/app/media"
def create_test_video(filename: str, duration: int = 5, resolution: tuple = (640, 360)) -> None:
"""Crea un video de prueba con FFmpeg."""
width, height = resolution
# Generar fuente de test y overlay
cmd = [
"ffmpeg",
"-f", "lavfi",
f"-i", f"testsrc=duration={duration}:size={width}x{height}:rate=30",
"-filter_complex",
f"color=c=red:d=1,overlay=0:0",
"-c:v", "libx264",
"-preset", "ultrafast",
"-crf", "28",
"-c:a", "aac",
"-b:a", "128k",
f"{filename}"
]
print(f"Generando {filename}...")
result = subprocess.run(cmd, capture_output=True, text=True)
if result.returncode != 0:
print(f"Error generando {filename}: {result.stderr}")
else:
print(f"Video {filename} generado exitosamente")
def create_test_audio(filename: str, duration: int = 10) -> None:
"""Crea un archivo de audio de prueba."""
cmd = [
"ffmpeg",
"-f", "lavfi",
f"-i", f"sine=frequency=440:duration={duration}",
"-c:a", "aac",
"-b:a", "128k",
filename
]
print(f"Generando {filename}...")
result = subprocess.run(cmd, capture_output=True, text=True)
if result.returncode != 0:
print(f"Error generando {filename}: {result.stderr}")
else:
print(f"Audio {filename} generado exitosamente")
def main():
"""Genera todos los archivos de prueba."""
os.makedirs(MEDIA_ROOT, exist_ok=True)
# Crear videos de prueba
create_test_video("test_movie_1.mp4", duration=5)
create_test_video("test_movie_2.mp4", duration=8)
# Crear audio de prueba
create_test_audio("test_audio_only.mp3", duration=10)
print("\nArchivos de prueba generados:")
for f in os.listdir(MEDIA_ROOT):
path = os.path.join(MEDIA_ROOT, f)
size = os.path.getsize(path)
print(f" {f}: {size} bytes")
if __name__ == "__main__":
main()