Summary
Panasonic AW-HE20/AW-UE20 integrated PTZ camera web control interface (CGI supplement for web/network control). HTTP GET/POST CGI endpoints for video transmission (MJPEG/JPEG/H.264/H.265), basic/network/stream settings, restart, RTMP control, and system-log retrieval; RTSP stream URLs for H.264/H.265. This supplement covers network application operation only — pan/tilt/zoom and general camera control live in the separate "HD Integrated Camera Interface Specifications" volume and are NOT covered here.
Transport
protocols:
- http
# RTSP also supported for stream pull (see Events/Notes); listed below as separate transport.
addressing:
base_url: "http://<cam_ip>/cgi-bin/" # <cam_ip> = camera IP address; verbatim from source
port: null # UNRESOLVED: port not stated in source (default 80 assumed by http:// examples but not declared; configurable via /cgi-bin/network port=1..65535)
auth:
type: null # UNRESOLVED: source describes optional User auth (factory OFF = no auth; ON = ID/password required for Live/Admin). Mechanism (basic/digest) not specified. See Notes.
Additional RTSP transport (informational):
# RTSP pull URLs from source §6.1 (stream consumption, not control)
# rtsp://<cam_ip>/mediainput/h264/stream_1
# rtsp://<cam_ip>/mediainput/h265/stream_1
Traits
# - queryable # inferred: many GET query CGIs (getuid, get_basic, get_priority_mode, get_video_over_ip, get_network, get_systemlog, get_rtmp_status, get_rtmp_param)
# No powerable/routable/levelable traits inferable from this source (PTZ control in separate volume).
traits:
- queryable # inferred from query CGI examples
Actions
# All CGIs documented in source. HTTP GET (Live) or GET/POST (Admin).
# command = full path verbatim; params enumerated where the source lists them.
# ===== §2.1 Transmission User Management (Live, GET) =====
- id: get_uid
label: Get User ID
kind: query
command: "/cgi-bin/getuid"
params:
- name: FILE
type: integer
description: "Fixed value 2"
- name: vcodec
type: string
description: "jpeg | h264 | h265 - codec in use"
- name: reply
type: string
description: "browser | info - response format (omittable)"
notes: "Response: UID=<id>[CR][LF]"
# ===== §2.2 JPEG / MJPEG transmission (Live, GET) =====
- id: jpeg_stream_connect
label: JPEG (MJPEG) Stream Connect
kind: action
command: "/cgi-bin/jpeg"
params:
- name: connect
type: string
description: "start | stop"
- name: framerate
type: integer
description: "60Hz/59.94Hz: 10, 30; 50Hz: 10, 25"
- name: resolution
type: integer
description: "640 (640x360) | 1280 (1280x720)"
- name: UID
type: integer
description: "User ID from /cgi-bin/getuid"
- id: mjpeg_stream
label: MJPEG Stream
kind: action
command: "/cgi-bin/mjpeg"
params:
- name: resolution
type: integer
description: "640 (640x360) | 1280 (1280x720)"
- name: framerate
type: integer
description: "60Hz/59.94Hz: 10, 30; 50Hz: 10, 25 (params omittable)"
- id: jpeg_oneshot_viewcgi
label: JPEG 1-shot (view.cgi)
kind: action
command: "/cgi-bin/view.cgi"
params:
- name: action
type: string
description: "snapshot"
- name: page
type: integer
description: "Dummy for disabling cache"
- id: jpeg_oneshot_camera
label: JPEG 1-shot (camera)
kind: action
command: "/cgi-bin/camera"
params:
- name: resolution
type: integer
description: "640 (640x360) | 1280 (1280x720)"
- name: page
type: integer
description: "Dummy for disabling cache"
# ===== §3.1 Basic settings (Admin) =====
- id: set_basic
label: Set Basic Settings (camera title)
kind: action
command: "/cgi-bin/set_basic"
params:
- name: cam_title
type: string
description: "Camera title (within 20 double-byte characters)"
- id: set_priority_mode
label: Set Priority Mode
kind: action
command: "/cgi-bin/set_priority_mode"
params:
- name: mode
type: string
description: "ip | usb | ip_4k | usb_4k | hdmi_4k | usb_video_conference"
# ===== §3.2 Video over IP settings (Admin) =====
- id: set_jpeg
label: JPEG Stream Settings
kind: action
command: "/cgi-bin/set_jpeg"
params:
- name: resol_stream1
type: integer
description: "640 | 1280"
- name: jpeg_transmit1
type: integer
description: "0 (OFF) | 1 (ON)"
- name: jpeg_interval1
type: integer
description: "60Hz/59.94Hz: 10, 30; 50Hz: 10, 25"
- id: set_h264
label: H.264 Stream Settings
kind: action
command: "/cgi-bin/set_h264"
params:
- name: h264_transmit
type: integer
description: "0 (OFF) | 1 (ON)"
- name: h264_resolution
type: integer
description: "640 | 1280 | 1920 | 3840 (3840 NOT available on AW-HE20)"
- name: framerate
type: integer
description: "60Hz/59.94Hz: 5, 15, 30, 60; 50Hz: 5, 10, 25, 50"
- id: set_h265
label: H.265 Stream Settings
kind: action
command: "/cgi-bin/set_h265"
params:
- name: h265_transmit
type: integer
description: "0 (OFF) | 1 (ON)"
- name: h265_resolution
type: integer
description: "640 | 1280 | 1920 | 3840 (3840 NOT available on AW-HE20)"
- name: framerate
type: integer
description: "60Hz/59.94Hz: 5, 15, 30, 60; 50Hz: 5, 10, 25, 50"
# ===== §3.3 Network settings (Admin) =====
- id: network_set
label: Network Settings
kind: action
command: "/cgi-bin/network"
params:
- name: dhcp
type: integer
description: "0 (OFF/static) | 1 (ON)"
- name: IP_addr1
type: integer
description: "IP address first octet (0-255)"
- name: IP_addr2
type: integer
description: "IP address second octet (0-255)"
- name: IP_addr3
type: integer
description: "IP address third octet (0-255)"
- name: IP_addr4
type: integer
description: "IP address fourth octet (0-255)"
- name: netmask1
type: integer
description: "Subnet mask first octet (0-255)"
- name: netmask2
type: integer
description: "Subnet mask second octet (0-255)"
- name: netmask3
type: integer
description: "Subnet mask third octet (0-255)"
- name: netmask4
type: integer
description: "Subnet mask fourth octet (0-255)"
- name: gateway1
type: integer
description: "Default gateway first octet (0-255)"
- name: gateway2
type: integer
description: "Default gateway second octet (0-255)"
- name: gateway3
type: integer
description: "Default gateway third octet (0-255)"
- name: gateway4
type: integer
description: "Default gateway fourth octet (0-255)"
- name: port
type: integer
description: "Port number (1-65535)"
- name: dns
type: string
description: "manual | auto"
- name: pri_server1
type: integer
description: "IPv4 primary DNS first octet (0-255)"
- name: pri_server2
type: integer
description: "IPv4 primary DNS second octet (0-255)"
- name: pri_server3
type: integer
description: "IPv4 primary DNS third octet (0-255)"
- name: pri_server4
type: integer
description: "IPv4 primary DNS fourth octet (0-255)"
- name: sec_server1
type: integer
description: "IPv4 secondary DNS first octet (0-255)"
- name: sec_server2
type: integer
description: "IPv4 secondary DNS second octet (0-255)"
- name: sec_server3
type: integer
description: "IPv4 secondary DNS third octet (0-255)"
- name: sec_server4
type: integer
description: "IPv4 secondary DNS fourth octet (0-255)"
- name: ip6_addr
type: string
description: "IPv6 address (*:*:*:*:*:*:*:* format)"
- name: ip6_gateway
type: string
description: "IPv6 default gateway (*:*:*:*:*:*:*:* format)"
- name: ip6_pri_server
type: string
description: "IPv6 primary server (*:*:*:*:*:*:*:* format)"
- name: ip6_sec_server
type: string
description: "IPv6 secondary server (*:*:*:*:*:*:*:* format)"
- id: easyipset
label: Easy IP Setup Protocol Setting
kind: action
command: "/cgi-bin/easyipset"
params:
- name: time
type: string
description: "20 (20 min) | unlimited"
# ===== §3.4 Restarting (Admin) =====
- id: initial_reset
label: Camera Restart
kind: action
command: "/cgi-bin/initial"
params:
- name: cmd
type: string
description: "reset - camera restart"
- name: Randomnum
type: string
description: "Hexadecimal string, 16 single-byte characters"
# ===== §4 Information acquisition (Live/Admin, GET) =====
- id: get_basic
label: Get Basic Settings
kind: query
command: "/cgi-bin/get_basic"
params: []
notes: "Response: cam_title=<title>"
- id: get_priority_mode
label: Get Priority Mode
kind: query
command: "/cgi-bin/get_priority_mode"
params: []
notes: "Response: priority_mode=<xxx> (see set_priority_mode values)"
- id: get_video_over_ip
label: Get VideoOverIP Screen Info
kind: query
command: "/cgi-bin/get_video_over_ip"
params: []
notes: "Response fields in random order; missing ch if transmission not possible. e.g. livestart_stream=jpeg/h264/h265, h264_resolution_ch1=1920, h264_framerate_ch1=5/15(10)/30(25)/60(50)"
- id: get_network
label: Get Network Settings
kind: query
command: "/cgi-bin/get_network"
params: []
notes: "Admin level. Response includes ip4_dhcp, ip4_addr, ip4_netmask, ip4_gateway, ip4_pri_server, ip4_sec_server, port, dns, ip6_* fields, time."
- id: get_systemlog
label: Get System Log
kind: query
command: "/cgi-bin/get_systemlog"
params:
- name: type
type: string
description: "eventlog | errorlog"
- name: num
type: integer
description: "100 (fixed)"
- name: index
type: integer
description: "1 (fixed)"
notes: "Not available on AW-UE4. Format: no\\mm/dd/yyyy hh:mm\\event code\\description$... (no line feed; \\ between params, $ between entries)"
# ===== §5 RTMP control =====
- id: rtmp_ctrl
label: RTMP Stream Control
kind: action
command: "/cgi-bin/rtmp_ctrl"
params:
- name: cmd
type: string
description: "start | stop"
- id: get_rtmp_status
label: Get RTMP Stream Status
kind: query
command: "/cgi-bin/get_rtmp_status"
params: []
notes: "Response: status=0 (suspended) | 1 (streaming)"
- id: set_rtmp_param
label: Set RTMP Server
kind: action
command: "/cgi-bin/set_rtmp_param"
params:
- name: type
type: integer
description: "0 (URL+key concatenation) | 1 (URL+key split)"
- name: url
type: string
description: "Server URL"
- name: key
type: string
description: "Stream Key (optional if type=0)"
- id: get_rtmp_param
label: Get RTMP Server Setting
kind: query
command: "/cgi-bin/get_rtmp_param"
params: []
notes: "Response: type=0/1, url=<string>, key=<string>"
Feedbacks
# Observable states returned by GET queries.
- id: uid_response
field: UID
type: integer
source_query: get_uid
description: "User ID returned as UID=<n>[CR][LF]"
- id: cam_title_state
field: cam_title
type: string
source_query: get_basic
description: "Camera title string"
- id: priority_mode_state
field: priority_mode
type: enum
values: [ip, usb, ip_4k, usb_4k, hdmi_4k, usb_video_conference]
source_query: get_priority_mode
- id: livestart_stream_state
field: livestart_stream
type: enum
values: [jpeg, h264, h265]
source_query: get_video_over_ip
- id: rtmp_status_state
field: status
type: enum
values: ["0", "1"]
source_query: get_rtmp_status
description: "0=stream suspended, 1=during stream"
- id: network_state
field: network
type: object
source_query: get_network
description: "ip4_*, ip6_*, port, dns, time fields"
- id: rtmp_param_state
field: rtmp_param
type: object
source_query: get_rtmp_param
description: "type, url, key"
- id: systemlog_state
field: systemlog
type: string
source_query: get_systemlog
description: "Event/error log entries (see get_systemlog notes for format)"
Variables
# Settable parameters exposed via Admin CGIs (not discrete actions).
- id: cam_title
set_via: set_basic
type: string
description: "Camera title (within 20 double-byte characters)"
- id: priority_mode
set_via: set_priority_mode
type: enum
values: [ip, usb, ip_4k, usb_4k, hdmi_4k, usb_video_conference]
- id: jpeg_resolution
set_via: set_jpeg
type: enum
values: ["640", "1280"]
- id: h264_resolution
set_via: set_h264
type: enum
values: ["640", "1280", "1920", "3840"] # 3840 NOT on AW-HE20
- id: h265_resolution
set_via: set_h265
type: enum
values: ["640", "1280", "1920", "3840"] # 3840 NOT on AW-HE20
- id: rtmp_server_type
set_via: set_rtmp_param
type: enum
values: ["0", "1"]
Events
# No unsolicited notifications documented in this source.
# UNRESOLVED: device may push events via other protocols (not in this CGI supplement).
Macros
# MJPEG acquisition sequence documented in §2.3:
# 1. GET /cgi-bin/getuid?FILE=2&vcodec=jpeg&page=<page>
# 2. receive UID=<id>
# 3. GET /cgi-bin/jpeg?connect=start&framerate=30&resolution=640&UID=<UID>
# 4. receive HTTP JPEG stream
#
# JPEG 1-shot sequence documented in §2.4:
# repeat GET /cgi-bin/camera?resolution=640&page=<n>, <n+1>, <n+2>... with standby between each.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no explicit safety warnings, interlock procedures, or power-on sequencing.
# Note: /cgi-bin/initial?cmd=reset reboots the camera - treat as disruptive (no explicit warning in source).
Notes
- Source is the "Integrated Camera Interface Specifications — Supplement for Web Control" covering AW-HE20/AW-UE20 (Ver.1.27) and AW-UE4 (Ver.2.05). The companion "HD Integrated Camera Interface Specifications" volume (NOT provided) covers PTZ, serial/RS-232/VISCA, and general camera operation.
- User auth is optional (User auth. menu). Factory default = OFF (no auth needed for Live; Admin requires ID/password). When ON, Live also requires ID/password. Mechanism (HTTP basic/digest) not specified.
- Access levels: Live (video acquisition + camera control) vs Admin (all SETUP controls).
- Priority mode affects which CGIs can execute and parameter value ranges (details in instruction manual, not in source).
- H.264/H.265 3840 (4K) resolution NOT available on AW-HE20.
- get_systemlog NOT available on AW-UE4.
- AW-xE20 series product/family page not found on pro-av.panasonic.net under that exact name; AW-UE20 is the confirmed global sibling. xE20 may be a regional model designation.
Spec done. Source = web/CGI supplement only — no PTZ/serial commands (those live in companion volume not provided). 22 CGIs + 2 RTSP URLs enumerated verbatim.
## Provenance
```yaml
source_domains:
- eww.pass.panasonic.co.jp
source_urls:
- https://eww.pass.panasonic.co.jp/pro-av/support/content/guide/DEF/UE20_CGI/Supplement_for_Web_Control-UE4UE20HE20E.pdf
- https://eww.pass.panasonic.co.jp/pro-av/support/content/guide/DEF/UE20/AW-UE20HE20_InterfaceSpecification_E.pdf
- https://eww.pass.panasonic.co.jp/pro-av/support/content/guide/DEF/RP50_120/RemoteControllerInterfaceSpecifications-E.pdf
- https://eww.pass.panasonic.co.jp/pro-av/support/content/guide/DEF/HE50_120_SERIAL/ConvertibleProtocol.pdf
- https://eww.pass.panasonic.co.jp/pro-av/support/content/guide/EN/top.html
retrieved_at: 2026-06-15T01:26:21.778Z
last_checked_at: 2026-06-16T07:10:06.081Z
```
## Verification Summary
```yaml
verdict: verified
checked_at: 2026-06-16T07:10:06.081Z
matched_actions: 22
action_count: 22
confidence: medium
summary: "All 22 spec CGI endpoints matched literally in source with complete parameter and transport verification. (11 unresolved item(s) noted in Known Gaps.)"
```
## Known Gaps
```yaml
- "PTZ/serial/RS-232/VISCA command set not in this source; covered in separate volume not provided"
- "HTTP port not stated (URL examples use 192.168.0.10 with no explicit port; configurable 1-65535 via /cgi-bin/network)"
- "auth mechanism (basic/digest) not specified; only that ID/password may be required for Admin/Live"
- "port not stated in source (default 80 assumed by http:// examples but not declared; configurable via /cgi-bin/network port=1..65535)"
- "source describes optional User auth (factory OFF = no auth; ON = ID/password required for Live/Admin). Mechanism (basic/digest) not specified. See Notes."
- "device may push events via other protocols (not in this CGI supplement)."
- "source contains no explicit safety warnings, interlock procedures, or power-on sequencing."
- "PTZ/serial/VISCA command set not in this source (separate volume)"
- "HTTP port not stated (configurable 1-65535 via /cgi-bin/network)"
- "auth mechanism (basic/digest) not specified"
- "firmware version compatibility ranges not stated beyond Ver.1.27 (HE20/UE20) and Ver.2.05 (UE4)"
```
---
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0