Ember Replay es una app de escritorio para Windows que graba tu pantalla en segundo plano y te deja guardar los últimos segundos de juego/stream con un atajo de teclado, tipo "Shadowplay" pero propio. Corre sobre Tauri (Rust + Astro) con libobs (el motor de OBS Studio) vendoreado como submódulo para capturar video/audio y codificar los clips.
Este documento describe cómo funciona la alpha actual, no el historial de desarrollo (para eso están los commits de dev-halcon).
- Graba en un buffer circular (replay buffer) todo el tiempo en segundo plano, sin generar archivos hasta que decidas guardar algo.
- Con un atajo global se guardan los últimos N segundos (configurable, 60s por defecto) como un
.mp4. - Un indicador circular permanente en la esquina inferior derecha del monitor que estás capturando te muestra el estado: rojo = no está grabando, verde = grabando.
- Todo corre desde la bandeja del sistema — cerrar la ventana la oculta, no mata el proceso ni corta la grabación.
| Atajo | Acción |
|---|---|
F9 |
Guardar clip (los últimos N segundos del buffer) |
F10 |
Prender/apagar la grabación en segundo plano |
Ambos son atajos globales de Windows (funcionan aunque Ember Replay no tenga el foco) y se pueden reasignar desde la app.
- Fuente de video: pantalla completa, ventana o captura de juego (usa
monitor_capture,window_captureogame_capturede OBS). - Resolución: original o 720p.
- FPS: configurable (60 por defecto).
- Audio: hasta 5 fuentes simultáneas (salida de escritorio y/o micrófonos vía WASAPI), cada una con volumen y mute independiente, pensado para setups tipo Voicemeeter con varios buses virtuales.
- Overlays: imagen, texto o navegador (browser source) superpuestos a la captura, con posición/escala/opacidad ajustables arrastrando directamente sobre el preview en vivo.
- Carpeta de clips y duración del buffer.
- Codificador de video: automático (prueba NVIDIA NVENC → AMD AMF → Intel QuickSync → x264 por software, hasta que uno arranque) o uno puntual a elección.
La configuración se persiste en %APPDATA%\dev.halcondev.emberio\config.json.
- Windows 10/11 (usa APIs nativas de Win32 para hotkeys globales, captura DXGI/WASAPI y el indicador de estado).
- GPU — recomendada una GPU con encoder de hardware (NVIDIA NVENC, AMD AMF o Intel QuickSync) para grabar sin cargar la CPU. Si no hay ninguna disponible, Ember Replay cae automáticamente a codificación por software (x264), más lenta pero funciona en cualquier PC.
La última build compilada está en Releases de este repo: descarga el .exe (NSIS) de la release más reciente, ejecútalo y sigue el asistente.
Es una alpha: puede tener bugs, cambios de comportamiento entre versiones y todavía no hay auto-actualización.
Al abrir Ember Replay por primera vez, el indicador de estado (rojo) aparece en la esquina inferior derecha de tu pantalla principal.
npm install
git submodule update --init # trae vendor/obs-studio
npm run tauri build # genera el instalador NSIS en src-tauri/target/release/bundle/nsis/Para desarrollo día a día:
npm run tauri dev- Frontend: Astro + Tailwind, empaquetado como vistas nativas de Tauri (ventana principal + overlays de preview/toast/indicador de estado).
- Backend: Rust (
src-tauri/), con bindings propios a libobs generados víabindgen(src-tauri/build.rs). - Motor de captura/codificación: libobs vendoreado en
vendor/obs-studio(submódulo git), compilado aparte y empaquetado junto al ejecutable.
Ember Replay no existiría sin OBS Studio y la decisión del OBS Project de liberar su motor de captura y codificación (libobs) como código abierto. Gracias a todo su equipo por ese trabajo y por dejarlo disponible para que otros lo estudiemos y construyamos sobre él.
Para que quede claro y de forma atribuible: el objetivo de este proyecto no es crear un reemplazo de OBS ni competir con él. Es un ejercicio personal para entender cómo funciona por dentro un motor de captura y codificación de video, y a partir de eso armar una app propia, simple y a medida, pensada para mi uso y el de mis amigos.