Sincronización
El reloj de audio actúa como referencia y el vídeo espera o descarta frames según su PTS.
C++ · FFmpeg · SDL2
Abrir un vídeo es fácil.
Entender todo lo que pasa después, no.
Este reproductor nació para estudiar el pipeline multimedia de verdad: paquetes, frames, relojes, audio, saltos temporales y varios hilos intentando mantenerse de acuerdo.
LenguajeC++17/20
DecodificaciónFFmpeg
Salida y eventosSDL2
PlataformaWindows x64
El proyecto
DVPlayer no intenta competir con VLC. Es un proyecto de ingeniería para comprender cómo viajan el audio y el vídeo desde un archivo hasta la pantalla.
El trabajo interesante aparece cuando pulsas pausa, mueves la línea de tiempo o el audio se adelanta unas décimas. Ahí entran las colas, los relojes, el vaciado de datos antiguos y las decisiones sobre qué frame mostrar o descartar.
Arquitectura
Cada módulo tiene una responsabilidad concreta y se comunica mediante paquetes, frames y relojes.
Decisiones
El reloj de audio actúa como referencia y el vídeo espera o descarta frames según su PTS.
Cada salto invalida paquetes y frames anteriores para que ningún dato viejo vuelva a la pantalla.
Las miniaturas usan su propio contexto de FFmpeg y no consumen la cola de reproducción.
Remuestreo, FIFO, volumen y callback de salida forman una ruta independiente y controlable.
Probarlo
La versión portable incluye DVPlayer, FFmpeg, SDL2, el runtime de Visual C++ y los recursos necesarios. No requiere instalación.