Video oynatımını yönet
Oynatma kontrolleri RTSP standartlarına ve ONVIF Akış Spesifikasyonuna (https://www.onvif.org/profiles/specifications/) uygundur.
Kayıt özeti
Bu GetRecordingSummary komutu kullanarak, aygıtta mevcut olan tüm kayıtlı videoların genel bir görünümünü alabilirsiniz. Bu zorunlu değildir, ancak bir arama yapmadan önce yararlı bilgiler sağlar.
İlk GetRecordingSummary ve son kaydın zaman damgasını almak için kullanabilir ve/veya GetMediaAttributes alabilirsiniz, ancak önce Milestone Open Network Bridge eklentideki XProtect Management Clienteklentiyi ayarlayan kameralardan Yapılandırmaları kullan'ı etkinleştirmelisiniz.

'i tarafından döndürülen hizmet uç noktasını kullanarak RecordingSearch hizmet için bir proxy oluşturun. GetServices. İstek ve yanıt nesneleri oluşturun, sonra 'i arayınGetRecordingSummary.
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 );
Kayıtları ara
Arama hizmeti yöntemi kamerada zaman uyumsuz bir arama FindRecordings başlatır. FindRecordings Arama sonuçlarına başvuran bir belirteç döndürür. Sadece bir kayıt mevcut olsa bile, bir arama, bu kayıt için bir referans elde etmenin uygun yoludur.
Aşağıdaki zorunlu parametrelerle bir FindRecordings istek gönderin:
SearchScope>IncludedSources>Token- kamera GUID belirtecini sağlamalısınızArama kriterleri için benzersiz olan bir
SearchToken, ile bir yanıt alacaksınız.SearchScope>RecordingInformationFilter- aşağıdaki parametreleri içeren dize:timestamp(UTC formatında)maxTimeBefore(istenen zaman damgasından önceki süre, milisaniye cinsinden)maxCountBefore(zaman damgasından önce istenen maksimum parça sayısı)maxTimeAfter(istenen zaman damgasından sonraki süre, milisaniye olarak)maxCountAfter(zaman damgasından sonra istenen maksimum parça sayısı)
Örneğin:
boolean(//Track[TrackType = “Video”]),2016-12-06T08:07:43Z,99999999,20,99999999,20
Arama kriterlerine karşılık gelen SearchToken tüm takiplerin bir listesini GetRecordingSearchResults alacaksınız.
Oynatma başlatılıyor
Video oynatımını görüntülerken varsayılan hız 1'dir (ileri yönde normal oynatma).
Oynatma RTSP PLAY yöntemi ile başlatılır. Bir aralık belirtilebilir. Hiçbir aralık belirlenmezse, akış baştan oynatılır ve sonuna kadar oynatılır veya akış duraklatılırsa, duraklatıldığı noktada devam ettirilir. Bu örnekte, RTSP sunucusuna oynatmayı üçüncü saniyeden 20. saniyeye kadar başlatması talimatını Range: npt=3-20 verir.
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
Ters oynatma
ONVIF cihazlar ters oynatmayı destekleyebilir. Ters oynatma, negatif bir değere sahip Ölçek başlık alanı kullanılarak gösterilir. Örneğin veri kaybı olmadan ters yönde oynatmak için -1.0 değeri kullanılacaktır.
Bu Milestone Open Network Bridge değerler [-32 : 32] değerlerini destekler.
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
Hızı değiştir
Hız, RTSP Rate-Control başlığı tarafından kontrol edilir. Aksi Rate-Control=yestakdirde, sunucu oynatma hızını kontrol edecektir. Akış, standart RTP zamanlama mekanizmaları kullanılarak gerçek zamanlı olarak teslim edilir. Aksi Rate-Control=notakdirde, oynatma hızı istemci tarafından kontrol edilir. Hız kontrollü tekrar oynatma genellikle yalnızca ONVIF olmayan özel istemciler tarafından kullanılır, çünkü Rate-Control=nobelirtmezler.
Bir istemcide oynatma hızını kontrol etmek için, verilen kontrol birimini kullanın. Örneğin, VLC medya oynatıcısında Oynatma > Hız > Daha Hızlı veya Daha Yavaş öğesini seçin . Bu, hızı 0,5 artırır veya azaltır.
Daha Hızlı Hassas ve Daha Yavaş Hassas, hızı 0,25 oranında değiştirir.
Komut satırı girişleriyle VLC medya oynatıcısını yönetin
VLC medya oynatıcısında video oynatımını komut satırlarını kullanarak yönetebilirsiniz. Ayrıntılar için VLC komut satırı yardımına (https://wiki.videolan.org/VLC_command-line_help/) bakın.
Bu tür komutlar, örneğin oynatımı tersine çevirmenize ve oynatmanın başlangıç zamanını değiştirmenize izin verir.
Tipik bir komut satırı örneği:
>vlc.exe --rate=-1.0 --start-time=3600 "rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373"
Nerede:
Hız, ölçek ve hız parametresidir
Başlangıç zamanı, veritabanı başladıktan saniyeler sonra
Aşağıda, VLC medya oynatıcı için oynatma kontrolleri verilmiştir:
Kod | Amaç | Değerler | Kullanım |
|---|---|---|---|
| Giriş tekrarları |
| Aynı girişin kaç kez tekrarlanacağı. |
| Başlangıç zamanı |
| Akış bu konumda başlayacak (saniye olarak). |
| Durdurma zamanı |
| Akış bu konumda duracaktır (saniye olarak). |
| Çalıştırma zamanı |
| Akış bu süreyi (saniye olarak) çalıştıracak. |
| Hızlı arama (varsayılan devre dışı) | Ararken hızı hassasiyete tercih edin. | |
| Oynatma hızı |
| Bu, oynatma hızını tanımlar (nominal hız 1.0), |
| Giriş listesi |
| Normal olandan sonra birbirine bağlanacak girişlerin virgülle ayrılmış bir listesini verebilirsiniz. |
| Giriş slave (deneysel) |
| Bu aynı anda birkaç girişten oynamanıza izin verir. Bu özellik deneysel, tüm biçimler desteklenmiyor. Girişlerin '#' ayrılmış bir listesini kullanın. |
Belirli bir zaman aralığındaki kayıtları geri alın
Bir RTSP bağlantısında isteğe bağlı URL parametresini kullanarak, belirli bir zaman noktasında video oynatımını talep clock edebilirsiniz.
Biçim: rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-[end_time]Z.
Özellikler [start_time] ve [end_time] özellikler genellikle biçimi takip eder yyyyMMddTHHmmssZ (yıl, ay, gün, sabit harf T, 24 saatlik zaman, dakika, saniye ve sabit harf Z).
Özellik end_time isteğe bağlıdır. Sadece başlangıç zamanını talep etmek için, şu biçimi kullanın: 'rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-. Örneğin, rtsp://onbhost:554/vod/3bf3b583-768a-43c7-ae74-38df708c4dbf?clock=20250830T140000Z- 30 Ağustos 2025'te 14:00 UTC'de başlayan bir akışı geri alacaksınız.
Sabit harf UTC zaman dilimini Z belirtir. Atlasanız bile (önerilmez), aksi belirtilmediği sürece zaman UTC olarak kabul edilir. Bir zaman dilimi ayarlamak için, desteklenen eklerden birini kullanın:
Sabit bir harf
pveya+ardından pozitif bir UTC ofsetihhmmgösterir. Örneğin, UTC+01:00 (Orta Avrupa Saati) anlamına20250830T140000p0100gelir.Sabit bir harf
mve ardından negatif bir UTC ofsetihhmmgösterir. Örneğin, UTC-08:00 (Pasifik Saati) anlamına20250830T140000m0800gelir.