C++ · FFmpeg · SDL2

DVPlayer

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.

DVPlayer PLAYING
1920 × 1080 YUV420P 60 FPS
FRAME 04 286
PREVIEW 01:24
01:11 03:42
H.264 / AAC VOL 82%
Interfaz de desarrollo · Release x64

LenguajeC++17/20

DecodificaciónFFmpeg

Salida y eventosSDL2

PlataformaWindows x64

El proyecto

Por qué construí un reproductor desde cero.

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

Cómo está organizado el pipeline.

Cada módulo tiene una responsabilidad concreta y se comunica mediante paquetes, frames y relojes.

Media file Contenedor de entrada
Demuxer Separa los streams
A Audio Decoder · FIFO · SDL
V Vídeo Decoder · frames · render
Clock Sincronización A/V

Decisiones

Problemas técnicos que tuve que resolver.

Sincronización

El reloj de audio actúa como referencia y el vídeo espera o descarta frames según su PTS.

Seek consistente

Cada salto invalida paquetes y frames anteriores para que ningún dato viejo vuelva a la pantalla.

Preview aislado

Las miniaturas usan su propio contexto de FFmpeg y no consumen la cola de reproducción.

Audio real

Remuestreo, FIFO, volumen y callback de salida forman una ruta independiente y controlable.

Probarlo

Descarga portable
para Windows.

La versión portable incluye DVPlayer, FFmpeg, SDL2, el runtime de Visual C++ y los recursos necesarios. No requiere instalación.

Sistema
Windows x64
Tamaño
129 MB
Formato
EXE portable