ビデオ再生の管理
再生のコントロールは RTSP 規格および ONVIF ストリーミング仕様(https://www.onvif.org/profiles/specifications/)に準じます。
録画サマリー
コマンドを使用して、デバイスで利用可能なすべての録画ビデオの概要を取得でGetRecordingSummaryきます。これは必須ではありませんが、検索を実行する前に役立つ情報を提供します。
最初または最後の録画のタイムスタンプを取得するためにGetRecordingSummaryやGetMediaAttributesを使用できます。ただし、まずMilestone Open Network BridgeのXProtect Management Clientプラグインで [カメラ構成を使用する] 設定を有効に設定する必要があります。
![[Open Network Bridge情報] ペインの[カメラからの設定]チェックボックスを使用します。](image/uuid-11d58c7d-d9be-aaf5-8afe-936a5fe06cb6.png)
で返されるサービスエンドポイントを使用してRecordingSearch、サービスのプロキシを作成します。 GetServices.リクエストとレスポンスのオブジェクトを作成し、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 );
録画のためのサーチ
SearchサービスメソッドはFindRecordings、カメラで非同期検索を開始します。検索結果を参照するトークンを返しますFindRecordings。利用できる録画が1つしかない場合でも、検索はその録画の参照を取得するための適切な方法です。
以下のマンダトリパラメータとともに、FindRecordingsリクエストを送ります:
SearchScope>IncludedSources>Token–カメラにGUID最小単位を提供する必要があります。検索条件ごとに固有である
SearchTokenとともに、レスポンスを取得できます。SearchScope>RecordingInformationFilter– 以下のパラメータと紐づいています:timestamp(UTCフォーマット)maxTimeBefore(ミリセカンド単位。リクエストされたtimestampの前の時間)maxCountBefore(リクエストされたtimestampeの前の最大トラック数)maxTimeAfter(ミリセカンド単位。リクエストされたtimestampの後の時間)maxCountAfter(リクエストされたtimestampeの後の最大トラック数)
例:
boolean(//Track[TrackType = “Video”]),2016-12-06T08:07:43Z,99999999,20,99999999,20
SearchTokenからGetRecordingSearchResultsに渡すと、検索条件に一致するすべてのトラックのリストを取得できます。
再生を開始する
ビデオ再生を閲覧するとき、デフォルトのスピードは1です(通常の再生は順方向です)。
再生はRTSP PLAYメソッドを使用して開始されます。範囲を指定できます。範囲が指定されていない場合、ストリームは最初から最後まで再生されます。あるいは、ストリームが一時停止された場合には、一時停止された地点から再開されます。この例では、Range: npt=3-20 RTSPサーバーに3秒から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
逆再生
ONVIF デバイスは逆再生をサポートすることがあります。逆再生は負の値のあるスケールヘッダーを使用して表示されます。例えば、データのロスなく逆再生をする場合、–1.0が値として使われます。
Milestone Open Network Bridgeは [-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
スピードの変更
速度はRTSPRate-Controlヘッダーによって制御されます。の場合Rate-Control=yes、サーバーが再生速度を制御しています。ストリームは、標準のRTPタイミング機構を使用してリアルタイムで配信されます。の場合Rate-Control=no、クライアントが再生速度を制御しています。レート制御リプレイは通常、ONVIF以外のクライアントが使用します。これは、Rate-Control=no指定しないためです。
クライアントで再生速度を制御するには、提供されたコントローラーを使用します。例えば、VLCメディアプレーヤーでは、再生>速度>より速くまたは遅くを選択します。これにより、速度が0.5増加または減少します。
Faster FineそしてSlower Fineはスピードを0.25の単位で変更します。
コマンドラインエントリで、VLCメディアプレイヤーの再生を管理する
コマンドラインを使用して、VLCメディアプレーヤーでビデオ再生を管理できます。詳細については、VLCコマンドラインヘルプ(https://wiki.videolan.org/VLC_command-line_help/ )を参照してください。
これらのコマンドは、例えば逆再生や、再生の開始場所の変更といったことを可能にします。
よく使われるコマンドラインの例:
>vlc.exe --rate=-1.0 --start-time=3600 "rtsp://user:1234@test01:554/vod/943ffaad-42be-4584-bc2c-c8238ed96373"
場所:
速度はスケールおよびスピードパラメータ
開始時間は、データベースが開始する数秒後
以下は、VLCメディアプレイヤーの再生コントロールです:
コード | 目的 | 値 | 使用 |
|---|---|---|---|
| インプットの重複 |
| 同じ入力が繰り返される回数。 |
| 開始時間 |
| ストリームは、この地点で開始されます(数秒後に)。 |
| 終了時間 |
| ストリームは、この地点で終了します(数秒後に)。 |
| ランタイム |
| ストリームはこの期間実行されます(数秒後に)。 |
| ファーストシーク(デフォルトでは無効) | シークしている間、正確さよりスピードを選ぶ。 | |
| 再生速度 |
| これは再生スピードを定義します(標準スピードは 1.0 です)。 |
| インプットリスト |
| コンマで区切られた入力のリストを与えることができます。これらの入力のリストは、通常の入力の後に連結されます。 |
| インプットスレイブ(実験的) |
| これにより、複数のインプットを同時に操作することができます。これは実験的な機能であり、すべてのフォーマットがサポートされているわけではありません。インプットのリストは、#を使って区切ってください。 |
特定の時間範囲から録画を取得
特定の時刻のビデオ再生をリクエストするには、RTSP リンクのオプション URL パラメータ clock を使用します。
フォーマット:rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]-[end_time]Z。
[start_time] および [end_time] のプロパティは、通常 yyyyMMddTHHmmssZ 形式(年、月、日、固定文字 T、24 時間制の時、分、秒、固定文字 Z)に従います。
プロパティはend_timeオプションです。開始時刻のみを要求するには、次の形式を使用します:rtsp://[hostname]:[port]/vod/[camera_guid]?clock=[start_time]- 。たとえば、rtsp://onbhost:554/vod/3bf3b583-768a-43c7-ae74-38df708c4dbf?clock=20250830T140000Z- 2025年8月30日の協定世界時14:00に開始するストリームを取得します。
固定文字はUTCタイムゾーンをZ示します。省略しても(非推奨)、特に指定しない限り、時刻はUTCとみなされます。タイムゾーンを設定するには、サポートされている接尾辞のいずれかを使用します。
固定文字
pまたは+その後に正のUTC オフセットが続hhmmくことを示します。例えば、UTC+01:00(中央ヨーロッパ時間)を20250830T140000p0100意味します。固定文字の後
mに負のUTC オフセットhhmmが続くことを示します。例えば、UTC-08:00(太平洋標準時)を20250830T140000m0800意味します。