Hantera uppspelning av video
Uppspelningskontroller följer RTSP-standarder och ONVIF Streaming Specification (https://www.onvif.org/profiles/specifications/).
Inspelningssammanfattning
Du kan få en översikt över all inspelad video tillgänglig på enheten genom att använda GetRecordingSummary kommandot. Detta är inte ett krav, men det ger användbar information innan en sökning genomförs.
Du kan använda GetRecordingSummary och/eller GetMediaAttributes för att få tidsstämpeln för den första och sista inspelningen, men du måste först aktivera inställningen Använd konfigurationer från kameror på Milestone Open Network Bridge-plugin i XProtect Management Client.

Skapa en proxy för RecordingSearch tjänsten med tjänstslutpunkten som returnerades av GetServices. Skapa förfrågnings- och svarsobjekt och anropa GetRecordingSummarysedan.
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 );
Sök inspelningar
Metoden för tjänstsökning FindRecordings startar en asynkron sökning på kameran. FindRecordings Returnerar en token som refererar till sökresultaten. Även om det bara finns en tillgänglig inspelning är en sökning det korrekta sättet att erhålla en referens för den inspelningen.
Skicka en förfrågan med FindRecordings innehållande följande obligatoriska parametrar:
SearchScope>IncludedSources>Token– du måste ange kamerans GUID-tokenDu får ett svar med en
SearchToken, vilken är unik för dessa sökkriterier.SearchScope>RecordingInformationFilter– sträng med följande parametrar:timestamp(i UTC-format)maxTimeBefore(tiden före efterfrågad tidsstämpel, i millisekunder)maxCountBefore(maximalt antal spår före efterfrågad tidsstämpel)maxTimeAfter(tiden efter efterfrågad tidsstämpel, i millisekunder)maxCountAfter(maximalt antal spår efter efterfrågad tidsstämpel)
Till exempel:
boolean(//Track[TrackType = “Video”]),2016-12-06T08:07:43Z,99999999,20,99999999,20
Skicka SearchToken till GetRecordingSearchResults och du får en lista med alla spår som motsvarar dina sökkriterier.
Initiera uppspelning
Vid visning av videouppspelning är standardhastigheten 1 (normal framåtriktad uppspelning)
Uppspelning initieras via metoden RTSP PLAY. Ett intervall kan anges. Om inget intervall angetts spelas strömmen från början till slut. Om strömmen pausas återupptas den vid den punkt den pausades. I detta exempel instruerar Range: npt=3-20 RTSP-servern att starta uppspelning från den tredje sekunden till den tjugonde sekunden.
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
Omvänd uppspelning
ONVIF-enheter kan stödja omvänd uppspelning. Omvänd uppspelning indikeras via rubriksfältet Skala med ett negativt värde. För att till exempel spela baklänges utan dataförlust bör ett värde på -1.0 används.
Milestone Open Network Bridge stödjer värdena [-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
Ändra hastighet
Hastighet kontrolleras av RTSP-Rate-Controlrubriken. Om Rate-Control=yes, så kontrollerar servern uppspelningshastigheten. Strömmen levereras i realtid via RTP standardmekanismer för timing. OmRate-Control=no, så kontrollerar klienten uppspelningshastigheten. Hastighetskontrollerad återuppspelning används vanligtvis endast av klienter som inte är ONVIF-specifika eftersom de inte Rate-Control=noanger.
För att kontrollera uppspelningshastighet i en klient, använd tillgängliga kontroller. Till exempel, med VLC mediaspelare, välj Uppspelning > Hastighet > Snabbare eller Långsammare. Detta ökar eller minskar hastigheten med 0,5.
Faster Fine och Slower Fine ändrar hastigheten med 0.25.
Hantera uppspelningar från VLC mediaspelare med kommandon i kommandoraden
Du kan hantera videouppspelningar i VLC mediaspelare via kommandoraden. Se VLC command line help (https://wiki.videolan.org/VLC_command-line_help/) för detaljer.
Sådana kommandon låter dig till exempel backa uppspelning och ändra starttid för uppspelning.
Ett exempel på en typisk kommandorad:
>vlc.exe --rate=-1.0 --start-time=3600 "rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373"
Där:
Rate är parameter för skala och hastighet
Start-time är sekunder efter databasens start
Följande är uppspelningskontrollerna för VLC mediaspelare:
Kod | Syfte | Värden | Användning |
|---|---|---|---|
| Indata-upprepningar |
| Antal gånger samma indata kommer att upprepas. |
| Starttid |
| Strömmen startar vid denna position (i sekunder). |
| Stopptid |
| Strömmen stannar vid denna position (i sekunder). |
| Körtid |
| Strömmen körs under denna varaktighet (i sekunder). |
| Snabbsökning (som standard inaktiverad) | Väljer hastighet över precision vid sökning. | |
| Uppspelningshastighet |
| Detta anger uppspelningshastigheten (nominell hastighet är 1.0), |
| Indatalista |
| Du kan ge en kommaavgränsad lista med indata som sammanfogas efter den normala. |
| Indataslav (experimentell) |
| Detta låter dig spela upp från flera indata samtidigt. Denna funktion är experimentell och stödjer inte alla format. Använd en '#'-separerad lista med indata. |
Hämta inspelningar från ett specifikt tidsspann
Du kan begära videouppspelning vid en specifik tidpunkt med den valfria URL-parametern clock i en RTSP-länk.
Formatet är: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-[end_time]Z.
Egenskaperna [start_time] och [end_time] följer vanligtvis formatet yyyyMMddTHHmmssZ (år, månad, dag, fast bokstav T, 24-timmarstid, minuter, sekunder och en fast bokstav Z).
Egenskapen end_time är valfri. För att begära enbart starttid, använd formatet: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-. Till exempel, rtsp://onbhost:554/vod/3bf3b583-768a-43c7-ae74-38df708c4dbf?clock=20250830T140000Z- kommer att hämta en ström som startar kl. 14:00 UTC den 30 augusti 2025.
Den fasta bokstaven Z indikerar UTC-tidszonen. Även om du utelämnar det (rekommenderas inte), räknas tiden fortfarande som UTC om inte annat anges. För att ange en tidszon, använd ett av de suffix som stöds:
En fast bokstav
peller+följt avhhmmindikerar en positiv UTC-förskjutning. Till exempel,20250830T140000p0100betyder UTC+01:00 (centraleuropeisk tid).En fast bokstav
mföljd avhhmmindikerar en negativ UTC-förskjutning. Till exempel,20250830T140000m0800betyder UTC-08:00 (Pacific Time).