Gestionar reproducción de vídeo
Los controles de reproducción cumplen los estándares RTSP y la especificación de transmisión ONVIF (https://www.onvif.org/profiles/specifications/).
Resumen de grabación
Puede obtener una visión general de todos los vídeos grabados disponibles en el dispositivo utilizando el comando GetRecordingSummary . Esto no es obligatorio, pero proporciona información útil antes de realizar una búsqueda.
Puede utilizar GetRecordingSummary y/u GetMediaAttributes para obtener la marca de tiempo de la primera y la última grabación, pero primero debe habilitar el ajuste Utilizar configuraciones de cámaras en el complemento de Milestone Open Network Bridge en el XProtect Management Client.

Cree un proxy para el servicio RecordingSearch utilizando el punto final de servicio devuelto por GetServices. Cree objetos de solicitud y respuesta y, a continuación, llameGetRecordingSummary.
SearchBindingProxy searchProxy( &soapSearch ); std::string searchEndpoint = "http://" + host + "/onvif/recording_search_service"; _tse__GetRecordingSummary tse__GetRecordingSummary; _tse__GetRecordingSummaryResponse tse__GetRecordingSummaryResponse; result = searchProxy.GetRecordingSummary( searchEndpoint.c_str(), NULL, &tse__GetRecordingSummary, &tse__GetRecordingSummaryResponse );
Buscar grabaciones
El método del servicio de búsqueda FindRecordings inicia una búsqueda asíncrona en la cámara. FindRecordings devuelve un token que hace referencia a los resultados de la búsqueda. Aunque solo haya una grabación disponible, una búsqueda es la forma adecuada de obtener una referencia para esa grabación.
Envíe una solicitud FindRecordings con los siguientes parámetros obligatorios:
SearchScope>IncludedSources>Token– debe proporcionar el token del GUID de la cámaraObtendrá una respuesta con un
SearchTokenque es único para los criterios de búsqueda.SearchScope>RecordingInformationFilter– cadena con los siguientes parámetros:timestamp(en formato UTC)maxTimeBefore(el tiempo antes de la marca de tiempo solicitada, en milisegundos)maxCountBefore(el número máximo de pistas antes de la marca de tiempo solicitada)maxTimeAfter(el tiempo después de la marca de tiempo solicitada, en milisegundos)maxCountAfter(el número máximo de pistas después de la marca de tiempo solicitada)
Por ejemplo:
boolean(//Track[TrackType = “Video”]),2016-12-06T08:07:43Z,99999999,20,99999999,20
Pase el SearchToken a GetRecordingSearchResults y obtendrá una lista con todas las pistas correspondientes a los criterios de búsqueda.
Iniciando reproducción
Al visualizar la reproducción de vídeo, la velocidad predeterminada es 1 (reproducción normal en dirección de avance).
La reproducción se inicia mediante el método REPRODUCIR RTSP. Se puede especificar un rango. Si no se especifica ningún rango, el flujo se reproduce desde el principio y se reproduce hasta el final, o, si el flujo se pausa, se reanuda en el punto en que se puso en pausa. En este ejemplo, Range: npt=3-20 indica al servidor RTSP que inicie la reproducción desde el tercer segundo hasta el segundo 20.
PLAY rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373 RTSP/1.0 CSeq: 123 Session: 12345678 Require: onvif-replay Range: npt=3-20 Rate-Control: no
Reproducción inversa
Los dispositivos ONVIF pueden admitir la reproducción inversa. La reproducción inversa se indica utilizando el campo Encabezado de escala con un valor negativo. Por ejemplo, para reproducir en reversa sin pérdida de datos, se usaría un valor de –1,0.
El Milestone Open Network Bridge admite los valores [-32 : 32].
PLAY rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373 RTSP/1.0 CSeq: 123 Session: 12345678 Require: onvif-replay Range: clock=20090615T114900.440Z Rate-Control: no Scale: -1.0
Cambiar velocidad
La velocidad se controla mediante el encabezado de Rate-Control RTSP. Si es Rate-Control=yes, entonces el servidor tiene el control de la velocidad de reproducción. El flujo se entrega en tiempo real utilizando mecanismos de sincronización estándar de RTP. SiRate-Control=no, entonces el cliente tiene el control de la velocidad de reproducción. La reproducción controlada por la velocidad normalmente solo la usarán clientes específicos que no sean de ONVIF porque no Rate-Control=noespecificarán.
Para controlar la velocidad de reproducción en un cliente, utilice los controladores proporcionados. Por ejemplo, con el reproductor multimedia VLC, seleccione Reproducción > Velocidad > Más rápido o Más lento. Esto aumenta o disminuye la velocidad en 0,5.
Más rápido bien y Más lento bien cambian la velocidad en 0,25.
Gestionar reproducción del reproductor multimedia VLC con entradas de la línea de comandos
Puede gestionar la reproducción de vídeo en el reproductor multimedia VLC utilizando líneas de comandos. Consulte la ayuda de la línea de comandos de VLC (https://wiki.videolan.org/VLC_command-line_help/) para obtener más detalles.
Dichos comandos le permiten, por ejemplo, la reproducción inversa y el cambio de la hora de inicio de la reproducción.
Un ejemplo de una línea de comandos típica:
>vlc.exe --rate=-1.0 --start-time=3600 "rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373"
Dónde:
La velocidad es el parámetro de escala y velocidad
El tiempo de inicio son los segundos después del inicio de la base de datos
A continuación se muestran los controles de reproducción para el reproductor de medios VLC:
Código | Objetivo | Valores | Uso |
|---|---|---|---|
| Repeticiones de entradas |
| Número de veces que se repetirá la misma entrada. |
| Hora de inicio |
| La transmisión comenzará en esta posición (en segundos). |
| Tiempo de parada |
| La transmisión parará en esta posición (en segundos). |
| Tiempo de ejecución |
| La transmisión se ejecutará durante el tiempo que dure (en segundos). |
| Búsqueda rápida (deshabilitada de forma predeterminada) | Favorecer la velocidad frente a la precisión al buscar. | |
| Velocidad rep. |
| Esto define la velocidad de reproducción (la velocidad nominal es 1.0). |
| Lista de entrada |
| Puede dar una lista de entradas separada por comas que se concatenarán juntas después de la normal. |
| Esclavo de entrada (experimental) |
| Esto le permite reproducir desde varias entradas al mismo tiempo. Esta característica es experimental, no admite todos los formatos. Utilizar una lista de entradas separada por «#». |
Recuperar grabaciones de un intervalo de tiempo específico
Puede solicitar la reproducción de vídeo en un momento específico utilizando el parámetro URL opcional clock en un enlace RTSP.
Este es el formato: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-[end_time]Z
Las propiedades [start_time] y [end_time] suelen seguir el formato yyyyMMddTHHmmssZ (año, mes, día, letra fija T, hora en formato de 24 horas, minutos, segundos y letra fija Z).
La propiedad end_time es opcional. Para solicitar solo la hora de inicio, utilice el formato: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-. Por ejemplo, rtsp://onbhost:554/vod/3bf3b583-768a-43c7-ae74-38df708c4dbf?clock=20250830T140000Z- recuperará un flujo que comienza a las 14:00 UTC del 30 de agosto de 2025.
La Z de letra fija indica la zona horaria UTC. Incluso si lo omite (no recomendado), la hora se sigue considerando UTC a menos que se especifique lo contrario. Para establecer una zona horaria, utilice uno de los sufijos compatibles:
Una
pde letra fija o+seguida dehhmmindica una compensación UTC positiva. Por ejemplo,20250830T140000p0100significa UTC+01:00 (Hora de Europa Central).Una
mde letra fija seguida dehhmmindica una compensación UTC negativa. Por ejemplo,20250830T140000m0800significa UTC-08:00 (Hora del Pacífico).