Grabaciones de vídeo
El tile Video Recordings es el visor en-misión para cada pieza de vídeo y medio estático ligado a la operación actual. Fusiona dos fuentes distintas en una sola tabla ordenable:
- Grabaciones de stream TACLINK — cualquier cosa grabada desde un peer en vivo (dron, bodycam, webcam, survcam) capturada a través del pipeline de medios TACLINK.
- Medios de dock DJI — fotos y vídeos obtenidos desde cada dock DJI
asignado a la operación (entrada
dockSns), vía la API de medios del dock.
Las filas se fusionan, se ordenan más reciente primero y se paginan 10 / 25 / 50 por página.
Columnas
| Columna | Qué muestra |
|---|---|
| Type | Insignia de fuente con color. DRONE (cian), BODYCAM (púrpura), WEBCAM (verde), SURVCAM (naranja), DJI PHOTO / DJI VIDEO (ámbar). Cada fila también lleva un icono — flight, videocam, linked_camera, photo_camera. |
| Operator | Filas de stream: chip de activo con el nombre del remitente, distintivo y color. Filas DJI: Dock XXXX (últimos 4 del número de serie) en ámbar. |
| Recorded | Hora (HH:mm:ss) más una fecha corta debajo (dd MMM). |
| Duration / Size | Vídeos de stream: píldora de duración (1m 23s). Vídeos DJI: tamaño de archivo — DJI no reporta duración en el listado, así que un guion reemplaza el tiempo. Fotos DJI: tamaño de archivo (4.2 MB). |
| Status | Insignia de procesamiento en filas de stream — PROCESSING, REDACTED, FAILED. |
| Actions | Chevron para expandir. |
Filtrar la lista
La cabecera tiene conmutadores tipo chip: All, Drone, Webcam, Bodycam, Survcam, DJI Photo, DJI Video. La lupa de búsqueda a la derecha abre una búsqueda de texto en línea que coincide con el nombre del operador, track id, nombre de archivo DJI y número de serie del dock DJI.
Reproducción en línea
Haz clic en una fila para expandir. El panel de detalle resuelve el URL del medio de forma perezosa:
- Grabaciones de stream prefieren
recordingUrl, si no caen a un URL S3 presignado paras3Bucket/s3Key. Si la grabación fue redactada (status === 'redacted'cons3KeyRedactedpoblado), aparece un conmutador de versión REDACTED / ORIGINAL y REDACTED está seleccionado por defecto para que las caras borrosas y las placas nunca se filtren accidentalmente. Haz clic en ORIGINAL para solicitar la copia sin redactar (con permisos). - Medios DJI se resuelven mediante la llamada
getMediaUrldel servicio del dock, que hace streaming a través de la nube.
Las fotos se renderizan en línea en un <img>; los vídeos se renderizan en un
HTML <video controls> con preload="metadata". Un enlace DOWNLOAD abre el
URL resuelto con el atributo download establecido.
Metadatos al expandir
Filas de stream listan: Started, Finished, Duration, Track ID,
Asset (solo grabaciones de dron) y Operator con punto de color del
distintivo. Filas DJI listan: File, Dock, Captured, Size y — si
el archivo lleva geolocalización — Position como lat, lng @ altitude. Las
filas ligadas a un flight task también muestran Task.
Eliminar grabaciones
Solo el commander de la operación ve un control de eliminación en el panel
expandido — detectado comparando el UID con sesión iniciada contra el
commanderUid de la operación. La eliminación es de dos clics: el primer
clic arma el botón (Confirm delete), un temporizador de 3 segundos lo
restablece, y el segundo clic llama a deleteStreamRecording. Eso elimina la
entrada de Firestore y programa la recolección de basura asíncrona del objeto
S3. No hay soft-delete — una vez confirmado, el objeto se ha ido.
La eliminación de medios DJI no está soportada desde ARGUS. El dock es el sistema de registro, así que la retención se gestiona desde DJI Cloud. El botón de eliminar se suprime en las filas DJI.
Trim y exportación de clip (aspiracional)
Recortar un clip a un sub-rango antes de descargar o adjuntar al informe no está implementado aún. Hoy, descarga el archivo completo y recorta en tu editor de elección. Una UI de trim está en la hoja de ruta y escribirá un MP4 recortado de vuelta a S3 como un nuevo objeto sin tocar el original.