Go to documentation repository
Previous page Next page
반환된 VIDEOSOURCEID 식별자는 다음과 같은 형식으로 제공됩니다: "HOSTNAME/ObjectType.Id/Endpoint.Name". 또한 친숙한 이름 및 관련된 다른 메타데이터도 함께 반환됩니다.
| 파라미터 | 필수 | 설명 |
|---|---|---|
| limit | No | 반환되는 결과의 최대 수를 결정합니다. 기본값은 1000입니다. |
| next_page | No | 요청이 모든 결과를 반환하지 않을 경우 응답에 포함되는 nextPageToken 파라미터의 값입니다. 이는 다음 값을 가져오는 데 사용됩니다. |
| filter | No | 필터에 따라 결과의 하위 집합을 가져올 수 있습니다. 현재, 필터 값으로는 HOSTNAME 또는 VIDEOSOURCEID를 사용할 수 있습니다. Attention! 서버 이름으로 "Office"가 지정되면 GET http://IP-address:port/prefix/camera/list?filter=Office 요청은 Office 서버의 모든 비디오 카메라를 반환합니다. |
| group_ids | No | 카메라가 속해야 하는 그룹 식별자의 목록 (그룹 목록 및 내용 가져오기 참조). 여러 식별자를 구분 기호 "|"를 사용하여 지정할 수 있습니다. 예를 들어: http://localhost:80/camera/list?group_ids=6af92229-43ff-0347-9dae-081bf9835733|b48111eb-64c5-294c-a69c-4adb07c954d1 이 경우, 응답에는 지정된 그룹 중 적어도 하나에 속하는 모든 카메라가 포함됩니다. |
요청 예시:
GET http://127.0.0.1:80/camera/list?filter=Server1
응답 예시:
{
"cameras" :
[
{
"accessPoint" : "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0",
"archives" : [],
"audioStreams" :
[
{
"accessPoint" : "hosts/Server1/DeviceIpint.1/SourceEndpoint.audio:0",
"isActivated" : false
}
],
"azimuth" : "0",
"camera_access" : "CAMERA_ACCESS_FULL",
"comment" : "",
"detectors" : [],
"displayId" : "1",
"displayName" : "Street",
"enabled" : true,
"groups" :
[
"e2f20843-7ce5-d04c-8a4f-826e8b16d39c"
],
"ipAddress" : "0.0.0.0",
"isActivated" : true,
"latitude" : "0",
"longitude" : "0",
"model" : "TestDevice",
"offlineDetectors" : [],
"panomorph" : false,
"ptzs" :
[
{
"accessPoint" : "hosts/Server1/DeviceIpint.1/TelemetryControl.0",
"areaZoom" : false,
"focus" :
{
"isAbsolute" : false,
"isAuto" : false,
"isContinous" : true,
"isRelative" : false
},
"iris" :
{
"isAbsolute" : false,
"isAuto" : false,
"isContinous" : true,
"isRelative" : false
},
"is_active" : true,
"move" :
{
"isAbsolute" : false,
"isAuto" : false,
"isContinous" : true,
"isRelative" : false
},
"pointMove" : false,
"zoom" :
{
"isAbsolute" : false,
"isAuto" : false,
"isContinous" : true,
"isRelative" : false
}
}
],
"rays" :
[
{
"accessPoint" : "hosts/Server1/DeviceIpint.1/EventSupplier.ray0:0",
"displayId" : "1.0.0",
"displayName" : "Ray",
"enabled" : true,
"isActivated" : true
},
{
"accessPoint" : "hosts/Server1/DeviceIpint.1/EventSupplier.ray0:1",
"displayId" : "1.0.1",
"displayName" : "Ray",
"enabled" : true,
"isActivated" : true
}
],
"textSources" : [],
"vendor" : "Virtual",
"videoStreams" :
[
{
"accessPoint" : "hosts/Server1/DeviceIpint.1/SourceEndpoint.video:0:0"
}
]
},
{
"accessPoint" : "hosts/Server1/DeviceIpint.2/SourceEndpoint.video:0:0",
"archives" :
[
{
"accessPoint" : "hosts/Server1/DeviceIpint.2/SourceEndpoint.video:0:0",
"default" : false,
"incomplete" : false,
"isEmbedded" : false,
"storage" : "hosts/Server1/MultimediaStorage.AliceBlue/MultimediaStorage",
"storageDisplayName" : "AliceBlue"
}
],
"audioStreams" :
[
{
"accessPoint" : "hosts/Server1/DeviceIpint.2/SourceEndpoint.audio:0",
"isActivated" : true
}
],
"azimuth" : "0",
"camera_access" : "CAMERA_ACCESS_FULL",
"comment" : "",
"detectors" :
[
{
"accessPoint" : "hosts/Server1/AVDetector.1/EventSupplier",
"displayName" : "Face detection",
"events" :
[
"TargetList",
"faceAppeared"
],
"isActivated" : false,
"parentDetector" : "",
"type" : "TvaFaceDetector"
}
],
"displayId" : "2",
"displayName" : "Hall",
"enabled" : true,
"groups" :
[
"e2f20843-7ce5-d04c-8a4f-826e8b16d39c"
],
"ipAddress" : "0.0.0.0",
"isActivated" : true,
"latitude" : "78.2379",
"longitude" : "15.4466",
"model" : "Virtual several streams",
"offlineDetectors" : [],
"panomorph" : false,
"ptzs" : [],
"rays" : [],
"textSources" : [],
"vendor" : "Virtual",
"videoStreams" :
[
{
"accessPoint" : "hosts/Server1/DeviceIpint.2/SourceEndpoint.video:0:0"
},
{
"accessPoint" : "hosts/Server1/DeviceIpint.2/SourceEndpoint.video:0:1"
}
]
}
],
"search_meta_data" :
[
{
"matches" :
[
6,
7,
8,
9,
10,
11,
12
],
"score" : 0
},
{
"matches" :
[
6,
7,
8,
9,
10,
11,
12
],
"score" : 0
}
]
}
| 파라미터 | 파라미터 설명 |
|---|---|
| archives | 카메라가 연결된 아카이브 목록 |
| audioStreams | 오디오 스트림 |
| comment | 코멘트 |
| camera_access | 카메라에 대한 접근 권한, 구체적으로:
|
| detectors | 생성된 검출 도구 목록 |
| displayId | 친숙한 이름 |
| displayName | 이름 |
| groups | 카메라가 속한 그룹 목록 |
| ipAddress | IP 주소 |
| isActivated | True—객체가 활성화됨, False—객체가 비활성화됨 |
| azimuth, latitude, longitude | 카메라의 좌표. 서버의 지역화에 따라 파라미터 값은 마침표 또는 쉼표로 구분될 수 있음 |
| model | 모델 |
| ptzs | PTZ 장치
|
| textSources | 이벤트 소스 |
| vendor | 벤더 |
| videoStreams | 비디오 스트림 |
| rays | 레이(Rays) |
Attention!
GET http://IP Address:port/prefix/live/media/{VIDEOSOURCEID}
{VIDEOSOURCEID}—세 부분으로 구성된 소스 엔드포인트 ID (비디오 카메라 목록 및 정보 가져오기 참조). 예를 들어, "SERVER1/DeviceIpint.3/SourceEndpoint.video:0:0".
Attention!
요청에 파라미터가 지정되지 않으면 비디오는 MJPEG 형식으로 수신됩니다.
| 파라미터 | 필수 | 설명 |
|---|---|---|
| format | No | 파라미터 값은 "mp4", "hls"입니다. 비디오는 HLS 프로토콜을 통해 원본 형식(재압축 없이)으로 수신할 수 있습니다. HLS 프로토콜은 H.264 형식만 지원합니다. "mp4" 플레이어는 원본 비디오를 H.264 및 H.265 형식으로 수신할 수 있습니다. 그 외의 경우에는 서버가 MJPEG 형식으로 재압축합니다. Attention! 원본과 다른 형식으로 비디오를 요청하면 재압축이 수행되므로 서버 부하가 증가합니다. |
| w, h | No | w—프레임 너비, h—프레임 높이 Attention! mp4 비디오는 크기 조정 없이 전송됩니다. h 및 w 값이 원본 비디오 크기보다 크면, 비디오는 원본 크기로 수신됩니다. 너비와 높이의 축소는 2배, 4배, 8배 등으로만 가능합니다. 지정된 크기가 원본 비디오 크기의 1/2, 1/4 등과 일치하지 않으면 비디오는 지정된 값에 가까운 원본 비디오 크기로 나누어 떨어지는 크기로 수신됩니다. |
| fr | No | FPS 값 Attention! 이 파라미터는 MJPEG 비디오에만 해당됩니다. |
| enable_token_auth | No | 비디오 스트림에 대한 인증된 서명 링크를 가져오기
|
| valid_token_hours | No | |
key_frames | No | 1—키 프레임만으로 재생 0—원본 프레임 속도 (기본값) |
| authToken | No | Axxon One 2.0부터 AxxonNet을 통해 연결 예: https://axxonnet.com/arpserver/25455_0/webclient/live/media/SERVER/DeviceIpint.1/SourceEndpoint.video:0:1?authToken=... |
| auth_token | No | Axxon One 2.0부터 서버에 직접 연결할 때 인증과 토큰으로 인증. 예: http://127.0.0.1:80/live/media/SERVER/DeviceIpint.1/SourceEndpoint.video:0:0?format=mp4&auth_token=... |
요청 예시:
GET http://127.0.0.1:80/live/media/Server1/DeviceIpint.23/SourceEndpoint.video:0:0?w=640&h=480&enable_token_auth=1&valid_token_hours=1
HLS 프로토콜 비디오는 원본 형식으로만 수신할 수 있습니다. HLS 프로토콜 비디오를 수신할 때 사용되는 파라미터는 다음과 같습니다:
| 파라미터 | 필수 | 설명 |
|---|---|---|
| keep_alive | No | 스트림을 유지할 시간(초 단위) |
| hls_time | No | 세그먼트 길이(초 단위) |
| hls_list_size | No | 최대 플레이리스트 항목 수. 0으로 설정하면 목록 파일에 모든 세그먼트가 포함됩니다. |
| hls_wrap | No | 세그먼트 파일명 번호가 랩핑되는 번호. 0으로 설정하면 번호는 절대 랩핑되지 않습니다. |
요청 예시:
GET http://127.0.0.1:80/live/media/SERVER1/DeviceIpint.23/SourceEndpoint.video:0:0?format=hls&keep_alive=60
응답 예시:
{
"keep_alive_seconds": 60,
"keep_alive_url": "/live/media/hls/keep?stream_id=7e9d8c93-80e2-4521-9a54-cb854fe3cd2d",
"stop_url": "/live/media/hls/stop?stream_id=7e9d8c93-80e2-4521-9a54-cb854fe3cd2d",
"stream_url": "/hls/7e9d8c93-80e2-4521-9a54-cb854fe3cd2d/playout.m3u8"
}
| 파라미터 | 설명 |
|---|---|
| keep_alive_seconds | 스트림을 유지할 시간(초 단위) |
| keep_alive_url | 스트림을 유지하기 위한 URL |
| stop_url | 스트림을 중지하기 위한 URL |
| stream_url | 세그먼트 목록에 접근하기 위한 URL |
Attention!
HLS 프로토콜 비디오는 약 20초의 지연 후에 사용 가능합니다. 이는 HLS 프로토콜의 특성 때문입니다. 링크를 받은 후, 여러 비디오 세그먼트의 캐시를 형성하고, 그 후에 비디오가 재생되기 시작합니다.
HLS 프로토콜을 통해 비디오를 재생하려면, 응답에서 stream_url 파라미터를 다음과 같이 사용하세요.
ffplay "http://root:root@10.0.12.65:80/hls/c83b48d5-2ab7-49eb-91ef-593f808d4e51/playout.m3u8"
RTSP 프로토콜 비디오는 원본 형식으로만 전송됩니다.
RTSP 링크 구조를 가져오기 위한 요청: http://login:password@IP Address:Port/live/media/Server1/DeviceIpint.23/SourceEndpoint.video:0:0?format=rtsp
응답 예시:
{
"http": {
"description": "RTP/RTSP/HTTP/TCP",
"path": "hosts/Server1/DeviceIpint.23/SourceEndpoint.video:0:0",
"port": "8554"
},
"rtsp": {
"description": "RTP/UDP or RTP/RTSP/TCP",
"path": "hosts/Server1/DeviceIpint.23/SourceEndpoint.video:0:0",
"port": "554"
}
}
비디오를 가져오기 위한 요청: GET rtsp://login:password@IP Address:554/hosts/Server1/DeviceIpint.23/SourceEndpoint.video:0:0
Attention!
경우에 따라 RTSP 비디오에 아티팩트가 발생할 수 있습니다. 이를 수정하려면 레지스트리 파일을 사용하여 TCP/IP 설정을 변경하세요.
RTSP 스트림 정보:
GET http://IP Address:port/prefix/rtsp/stat
ffplay.exe -v debug "http://login:password@IP Address:8001/live/media/Server1/DeviceIpint.23/SourceEndpoint.video:0:0?w=1600&h=0"
Attention!
HTTP는 비디오를 MJPEG 형식으로만 전송하며 w와 h 파라미터는 필수입니다.
VLC에서 RTSP를 HTTP를 통해 터널링 설정하기 을/를 참조하세요.
비디오는 터널을 통해 원본 형식으로 전송됩니다.
요청 예시:
ffplay -rtsp_transport http "rtsp://login:password@IP Address:80/rtspproxy/hosts/Server1/DeviceIpint.23/SourceEndpoint.video:0:0"
VLC용 GET 요청: rtsp://login:password@IP Address:80/rtspproxy/hosts/Server1/DeviceIpint.23/SourceEndpoint.video:0:0
원본 H.264 및 H.265 형식으로 실시간 비디오를 받으려면 mp4 형식을 사용하세요.
요청 예시:
ffplay.exe "http://root:root@192.168.25.112:8001/live/media/Server1/DeviceIpint.61/SourceEndpoint.video:0:0?format=mp4"
{VIDEOSOURCEID} – 세 부분으로 구성된 소스 엔드포인트 ID (비디오 카메라 목록 및 정보 가져오기 참조). 예를 들어, "SERVER1/DeviceIpint.3/SourceEndpoint.video:0:0".
| 파라미터 | 필수 | 설명 |
|---|---|---|
w h | No | w – 프레임 너비, h – 프레임 높이 Note 만약 h와 w 값이 원본 프레임의 크기보다 크다면, 프레임은 원본 크기로 수신됩니다. 너비와 높이를 축소하는 것은 2배, 4배, 8배 등으로만 가능합니다. 지정된 크기가 원본 프레임 크기의 1/2, 1/4 등과 일치하지 않으면, 지정된 값에 가까운 원본 프레임 크기로 나누어 떨어지는 크기로 프레임이 수신됩니다. |
crop_x crop_y crop_width crop_height | No | crop_x – 왼쪽 상단 코너로부터의 수평 들여쓰기. 가능한 값은 0에서 1까지이며, 기본값은 0입니다. crop_y – 왼쪽 상단 코너로부터의 수직 들여쓰기. 가능한 값은 0에서 1까지이며 기본값은 0입니다. crop_width – 원본 이미지 너비의 비율. 가능한 값은 0에서 1까지이며 기본값은 1입니다. crop_height – 원본 이미지 높이의 비율. 가능한 값은 0에서 1까지이며 기본값은 1입니다. |
Note
기본적으로 스냅샷 업데이트 주기는 30초입니다. 이 값을 변경하려면 NGP_SNAPSHOT_TIMEOUT 시스템 변수를 생성하고 필요한 값을 밀리초 단위로 설정해야 합니다. (부록 9. 시스템 변수 생성 참조).
요청 예시:
원본 해상도로 스냅샷을 받으려면: GET http://IP-Address:port/prefix/live/media/snapshot/Server1/DeviceIpint.23/SourceEndpoint.video:0:0.
640*480 해상도로 스냅샷을 받으려면: GET http://IP-Address:port/prefix/live/media/snapshot/Server1/DeviceIpint.23/SourceEndpoint.video:0:0?w=640&h=480.
스냅샷의 오른쪽 하단 부분을 받으려면: GET http://IP-Address:port/prefix/live/media/snapshot/Server1/DeviceIpint.23/SourceEndpoint.video:0:0?crop_x=0.5&crop_y=0.5&crop_width=0.5&crop_height=0.5.
640*480 해상도로 스냅샷의 오른쪽 하단 부분을 받으려면: GET http://IP-Address:port/prefix/live/media/snapshot/Server1/DeviceIpint.23/SourceEndpoint.video:0:0?w=640&h=480&crop_x=0.5&crop_y=0.5&crop_width=0.5&crop_height=0.5.
GET http://IP-Address:port/prefix/group
요청 예시:
GET http://127.0.0.1:80/group
응답 예시:
{
"groups" : [
{
"Brief" : "Group1",
"Description" : "",
"Id" : "35fc84a0-2280-4b30-acd2-cc8419a2dc68",
"groups" : [
{
"Brief" : "Group2",
"Description" : "",
"Id" : "dac24803-313c-43ab-aa9a-276922a55cb6",
"groups" : []
},
{
"Brief" : "Group3",
"Description" : "",
"Id" : "13764152-6910-44b6-99b5-f74641ad4a14",
"groups" : [
{
"Brief" : "Group4",
"Description" : "Group4",
"Id" : "9a64e2a0-eb92-4adc-bc4f-81d30ceb6c2f",
"groups" : []
}
]
}
]
}
]
}
GET http://IP-Address:port/prefix/group/{GROUPID}.
GROUPID – 이전 요청을 사용하여 받은 Id 필드의 값입니다.
요청 예시:
GET http://127.0.0.1:80/group/9a64e2a0-eb92-4adc-bc4f-81d30ceb6c2f
응답 예시:
{
"members" : [ "hosts/SERVER1/DeviceIpint.1/SourceEndpoint.video:0:0" ]
}
GET http://IP-Address:port/prefix/group/contains/{VIDEOSOURCEID}
{VIDEOSOURCEID} – 세 부분으로 이루어진 소스 엔드포인트 ID (비디오 카메라 목록 및 정보 가져오기 참조). 예를 들어, "SERVER1/DeviceIpint.3/SourceEndpoint.video:0:0".
요청 예시:
GET http://127.0.0.1:80/group/contains/SERVER1/DeviceIpint.1/SourceEndpoint.video:0:0
응답 예시:
{
"groups" : [
"35fc84a0-2280-4b30-acd2-cc8419a2dc68",
"13764152-6910-44b6-99b5-f74641ad4a14",
"dac24803-313c-43ab-aa9a-276922a55cb6"
]
}
{VIDEOSOURCEID} − 세 부분으로 구성된 소스 엔드포인트 ID (비디오 카메라 목록 및 정보 가져오기 참조). 예를 들어, "SERVER1/DeviceIpint.3/SourceEndpoint.video:0:0".
여러 카메라에 대한 통계: POST http://IP-Address:port/prefix/statistics/ + 요청 본문은 다음 형식으로 작성됩니다.
[
"hosts/SERVER1/DeviceIpint.1/SourceEndpoint.video:0:0",
"hosts/SERVER1/DeviceIpint.2/SourceEndpoint.video:0:0"
]
| 파라미터 | 필수 | 설명 |
|---|---|---|
| waterlevel | No | waterlevel = 1 − 응답에는 카메라에 대해 수위 감지가 설정된 경우 현재 수위 값이 포함됩니다 (수위 검출 설정 참조). |
요청 예시:
GET http://127.0.0.1:80/statistics/Server1/DeviceIpint.1/SourceEndpoint.video:0:0
응답 예시:
{
"bitrate": 592831,
"fps": 2.278942490e+01,
"width": 1280,
"height": 720,
"mediaType": 2,
"streamType": 877088845
}