Virtual Camera
Available streams
Stream modifiers
Stream modifiers
The Virtual Camera is an RTSP server that mimics an IP camera by delivering pre-processed H.264 video streams over RTP.
The general format of an RTSP URL is: rtsp://ip-address:port/path. For the Virtual Camera, port is always 8554 and path is one of the available streams listed below. There are three IP addresses available:
- 104.211.59.243 - general use
The RTSP server will provide RTP over TCP or UDP. The accompanying HTTP server supports tunneling (through port 80), and will connect to the Virtual Camera application. By default no authentication is required, but this can be modified. The server requires an RTSP heartbeat and (if using UDP) RTCP RR (receiver report) packets, or it will time out and drop the connection.
Modifiers
You can cause the Virtual Camera to change its behavior on a per-connection basis by appending
modifiers to the path on the URL. For example,
rtsp://104.211.59.243:8554/BusyIntersection/BusyIntersection-1920x1080
will cause the Virtual Camera to cease delivering video RTP packets after 30 seconds.
Modifiers enhance device testing by mimicing various camera quirks and failure modes.
They always appear at the end of the URL (after the stream path),
preceded by the '?' character.
The available modifiers are:
- basic - Require basic RTSP authentication (the default is no authentication). The user/password is always admin/admin.
- denytcp - Deny RTP-over-TCP connection requests. The server will return an RTSP 461 error (Unsupported Transport).
- denyudp - Deny RTP-over-UDP connection requests. The server will return an RTSP 461 error (Unsupported Transport).
- digest - Require digest RTSP authentication (the default is no authentication). The user/password is always admin/admin.
- noidr=N[unit] - Suppress IDR NAL units for the specified amount of time, and then play normally. Most decoders do not begin decoding until an IDR has been received, so this can be used to test initial timeout conditions. N must be a non-negative integer; see "play=" for units.
- nopps - Suppress transmission of PPS NAL units. Since the RTSP connection passes the SPS and PPS NAL units to the client during the DESCRIBE handshake (as sprop-parameter-sets), this can be used to test whether the client processes those correctly.
- nosps - Suppress transmission of SPS NAL units. Since the RTSP connection passes the SPS and PPS NAL units to the client during the DESCRIBE handshake (as sprop-parameter-sets), this can be used to test whether the client processes those correctly.
- play=N[unit] - Play the stream for some amount of time (N), and then stop transmitting RTP packets. The default units for N are seconds; if a suffix is present then alter N accordingly; suffixes are: 's' (seconds), 'm' (minutes), 'h' (hours), 'd' (days). Example: play=10m ceases playback after 10 minutes.
- rtcp=N - Send RTCP reports every N seconds (default is 30 seconds). See "play=" for units of N.
- time=N[unit] - Offset the NTP timestamp (send in the RTCP/SR packets) by N seconds. Note that N is a signed value, so time can be offset in either direction. See "play=" for units.
rtsp://10.70.0.29:8554/BusyIntersection/BusyIntersection-320x240?play=10s,noidr=5s,time=-10h
Note that the Virtual Camera does very minimal error checking on modifiers, and does not enforce
any consistency. For example, using "?basic,digest" will enable basic authentication (not digest),
but "?play=10s,play=20m" will enable playback for 20 minutes; this is just the way the parser works
(the "you asked for it, you got it" approach).
If you make an error in the modifier list the Virtual Camera will return an RTSP 405 error (Method
Not Allowed).
Available Streams
Each entry in this list may be substituted for the path in the RTSP URL when connecting to
the Virtual Camera. Note that if you mis-type a path name the Virtual Camera will return an
RTSP 404 error (Not Found).
In general the file names include the resolution; any that do not are probably 1920x1080.
5_0L-H4A-B2_-_Team_Store_-_Dusk_1_001885102afc_cam00-2592x1944_3233104004393784216
BusyAirport-640x360
BusyIntersection-1024x768
BusyIntersection-1280x720
BusyIntersection-1280x960
BusyIntersection-1440x1080
BusyIntersection-15fps-2048x1536
BusyIntersection-176x144
BusyIntersection-1920x1080
BusyIntersection-2048x1536
BusyIntersection-2592x1944
BusyIntersection-320x240
BusyIntersection-352x240
BusyIntersection-480x270
BusyIntersection-480x360
BusyIntersection-640x360
BusyIntersection-640x480
BusyIntersection-704x480
BusyIntersection-720x480
BusyIntersection-800x600