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

Puedes obtener una descripción general de todo el vídeo grabado disponible 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.

Use configuration from cameras check box in the Open Network Bridge Information pane.

Cree un proxy para el servicio RecordingSearch utilizando el terminal de servicio devuelto por GetServices. Cree objetos de solicitud y respuesta, luego invoque GetRecordingSummary.

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 se inicia como una búsqueda asíncrona en la cámara. FindRecordings devuelve un token que hace referencia a los resultados de la búsqueda. Aunque haya solo una grabación disponibles, 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:

Por ejemplo:

boolean(//Track[TrackType = “Video”]),2016-12-06T08:07:43Z,99999999,20,99999999,20

Obtendrá una respuesta con un SearchToken que es único para los criterios de búsqueda.

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 ha especificado 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 da instrucciones al servidor RTSP para que comience la reproducción desde el tercer segundo hasta el segundo 20.

Por ejemplo:

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 Rate-Control de RTSP. Si Rate-Control=yes, el servidor tiene el control de la velocidad de reproducción. El flujo se entrega en tiempo real utilizando mecanismos estándar de sincronización RTP. Si Rate-Control=no, el cliente tiene el control sobre la velocidad de reproducción. La reproducción controlada por la velocidad normalmente solo la usará clientela específica no ONVIF, porque no especificará Rate-Control=no.

Para controlar la velocidad de reproducción en un cliente, utilice los controladores facilitados. Por ejemplo, con el reproductor multimedia VLC, seleccione Reproducir > Velocidad > Más rápido o Más despacio. Esto aumenta o reduce 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 comando. 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:

A continuación se muestran los controles de reproducción para el reproductor de medios VLC:

Código

ObjetivoValores

Uso

input-repeat=Repeticiones de entradas<entero [-2147483648 .. 2147483647]>

Número de veces que se repetirá la misma entrada.

start-time=

Hora de inicio<float>

La transmisión comenzará en esta posición (en segundos).

stop-time=

Tiempo de parada<float>

La transmisión parará en esta posición (en segundos).

run-time=

Tiempo de ejecución<float>

La transmisión se ejecutará durante el tiempo que dure (en segundos).

input-fast-seek

no-input-fast-seek

Búsqueda rápida (deshabilitada de forma predeterminada) 

Favorecer la velocidad frente a la precisión al buscar.

rate=

Velocidad rep.<float>

Esto define la velocidad de reproducción (la velocidad nominal es 1.0).

input-list=

Lista de entrada<string>

Puede dar una lista de entradas separada por comas que se concatenarán juntas después de la normal.

input-slave=

Esclavo de entrada (experimental)<string>

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 este formato: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-. Por ejemplo, rtsp://onbhost:554/vod/3bf3b583-768a-43c7-ae74-38df708c4dbf?clock=20250830T140000Z- devolverá una transmisión que comienza a las 14:00 UTC del 30 de agosto de 2025.

La letra fija Z indica la zona horaria UTC. Aunque se omita (no recomendado), la zona horaria sigue siendo UTC, a menos que se especifique lo contrario. Para establecer otra zona horaria, utilice uno de los sufijos compatibles: