Vídeo · Recuperar un clip
Extrae un clip bajo demanda. Envíalo a tu nube.
Siete operaciones de servicio cubren el ciclo de vida de los medios almacenados. Extracción de clip por copia de flujo — sin decodificación, sin recodificación, ~1–2 s de desplazamiento GOP por borde. Carga SFTP con anclaje de clave de host, protección contra traversal de ruta y mp4-reduce.
Cómo funciona
Siete operaciones de servicio. Una ruta de carga.
GetSegments consulta el índice de segmentos por objetivo y rango temporal; ExtractClip realiza la extracción solo mux por copia de flujo con ~1–2 s de desplazamiento GOP; Upload envía vía SFTP con anclaje de clave de host; mp4-reduce elimina los átomos free/skip y corrige los desplazamientos stco. Snapshot (keyframe a JPEG ~50 ms) y Protect/Unprotect se muestran como rutas laterales en línea discontinua.
flowchart LR G[GetSegments<br/>por objetivo + rango temporal] --> X[ExtractClip<br/>solo mux · ~1–2 s desplazamiento GOP] X --> U[Upload<br/>SFTP · clave de host anclada] U --> M[mp4-reduce<br/>eliminar free/skip · corregir stco] S[Snapshot<br/>keyframe → JPEG ~50 ms] -.-> X P[Protect / Unprotect] -.-> G
| Operación | Entrada | Salida |
|---|---|---|
| GetSegments | objetivo, start_ts, end_ts | lista de SegmentRow |
| ExtractClip | segment_id, start_offset, end_offset | ruta del clip en disco |
| Snapshot | segment_id, keyframe_offset | ruta JPEG |
| Protect | segment_id | — (idempotente) |
| Unprotect | segment_id | — (idempotente) |
| Remove | segment_id | — (elimina archivo + fila) |
| Upload | rutas, destination_uri, opciones | flujo de estado de carga |
Architecture
Lo que no escribes — la infraestructura entregada por MOS4.
mos-dashcam Índice de segmentos (SQLite, en memoria con snapshots), controlador de retención y las siete operaciones de servicio — GetSegments, ExtractClip, Snapshot, Protect, Unprotect, Remove, Upload. Nivel gamma: listo para producción en rutas de grabación internas.
splitmuxsrc ! qtmux ! filesink
Pipeline GStreamer solo mux para ExtractClip — splitmuxsrc lee el segmento fuente;
qtmux remuxea el flujo; filesink escribe el clip de salida. Sin decodificación,
sin recodificación, sin ida y vuelta de pixel.
russh-sftp ring backend
Transporte de carga SFTP — russh-sftp con un backend ring, anclaje de clave de
host, protección contra traversal de ruta y sustitución de URL por token de contexto. La integración
proporciona una URI; el micro service gestiona el handshake SSH y la transferencia de flujo.
mp4-reduce
Elimina los átomos free y skip del contenedor MP4, luego corrige las
tablas de desplazamiento de chunk stco / co64 para mantener el archivo
válido. Reduce la carga de subida sin recodificar un solo frame.
dashcam-controller BETA
Integración de dashcam externa de marca blanca vía Wi-Fi HTTP y notificación TCP. Cola de
solicitudes pendientes con TTL que gestiona los huecos de conectividad. Distinto de
mos-dashcam — este micro service controla una unidad de hardware externa, no el
pipeline de grabación interno en el dispositivo MOS4.
mos-dashcam vs dashcam-controller
mos-dashcam (gamma) es el grabador interno: corre en el dispositivo MOS4, posee el FIFO de segmentos y expone las siete operaciones de servicio documentadas arriba. dashcam-controller (BETA) controla una unidad dashcam externa de marca blanca vía Wi-Fi HTTP y notificación TCP — hardware separado, ciclo de vida separado, mismo vehículo. Ambos pueden funcionar simultáneamente; no comparten estado.
Preguntas frecuentes
Preguntas frecuentes
-
¿Puedo solicitar un clip en una ventana temporal específica?
Sí — GetSegments(objetivo, start_ts, end_ts) devuelve los segmentos coincidentes; ExtractClip(segment_id, start_offset, end_offset) escribe un MP4 copiado por flujo con ~1–2 s de desplazamiento GOP por borde.
-
¿Qué velocidad tiene una miniatura?
~50 ms keyframe→JPEG en QCS6490 vía qtic2vdec y jpegenc — sin decodificación completa, sin recodificación.
-
¿Cómo sobrevive la carga a los cortes de celular?
El micro service expone el estado de carga vía service-call; la lógica de reintento en la capa de integración gestiona los cortes de celular. mp4-reduce reduce la carga antes de subir — sin recodificación, solo eliminación de átomos free/skip y corrección de desplazamientos stco.
-
¿Cuál es la diferencia entre mos-dashcam y dashcam-controller?
mos-dashcam (gamma) es el grabador interno que corre en el dispositivo MOS4 — posee el índice de segmentos, el controlador de retención y las siete operaciones de servicio. dashcam-controller (BETA) controla hardware dashcam externo de marca blanca vía Wi-Fi HTTP y notificación TCP. Ambos pueden coexistir en el mismo vehículo.
-
¿Y si necesito grabación interna Y una dashcam externa conectada?
Se componen. La grabación interna usa mos-dashcam; la dashcam externa es controlada por dashcam-controller (BETA) — la cola de solicitudes pendientes con TTL gestiona los huecos de conectividad entre ambos.
Trae tus cámaras y tu caso de uso.
MIPI / GMSL / RTSP / WebRTC / SRT, grabación interna, dashcam externa de marca blanca, despertar por evento — elige tu función y esbozaremos el pipeline.
Continuar · Otras funciones de Vídeo
Otras funciones de vídeo
Multicámara
Cinco transportes · dos familias de SoC · una API service.
Grabar por evento
FIFO rotativo + clips señalados por evento + difuminado RGPD en vivo.
Transmisión en vivo
WebRTC · RTSP · SRT.
Despertar por evento
Siete fuentes · < 5 s listo.
IA en la nube sobre clips
Fusión lifecycle · conforme RGPD.