Stillframe

Get started API reference What it can picture Plans and limits Using the picture When a feed fails Paying

What it can and cannot picture

The limits, in one place. Everything here is what the service does today.

Sizes

You choose a canvas: 1920x1080 and 1080x1920 (1080p, landscape and portrait) or 3840x2160 and 2160x3840 (4K, landscape and portrait). 1080p is in every plan; 4K is on Standard and Pro (Plans and limits). Camera and push feeds can also use native.

feedwhat you get
pageThe page is drawn in a browser window exactly as big as the canvas, and you get that window's picture. A page taller than the window is cut off at the bottom: nothing scrolls. The background colour is not used.
camera or push, with a canvasA picture bigger than the canvas is shrunk to fit, keeping its shape. A smaller one is never enlarged: it sits in the middle of the canvas on the background colour you chose. The result is exactly the canvas size.
camera or push, nativeThe picture keeps its own size. Only a picture bigger than 4K (3840 by 2160, or 2160 by 3840 for a portrait picture) is shrunk to fit.

Background colour: black (#000000) unless you choose another with background.

Format: png or jpg. A page in jpg is saved at quality 85. A pushed picture or a camera frame is always drawn again by Stillframe, so its hidden details (a phone's location, the camera model) are not passed on.

Ports

An address may use port 80, 443, and 1024 to 65535. If the address has no port, the scheme decides: 80 for http, 443 for https. An RTSP camera may use port 554, and 1024 to 65535; with no port it is 554.

This is checked when you make or change a feed, and again for every connection a picture takes, including the ones a page makes for its own scripts and images and any redirect it follows. A page that sends the browser to a port outside that list fails with blocked_egress. Only the number is checked, not whether it suits the scheme: http://example.com:443 is allowed.

Private addresses

Stillframe refuses anything that is not plainly on the public internet:

So a dashboard that only works inside your network cannot be photographed by Stillframe. Take the picture there and push it. The refusal shows as blocked_address when you make the feed and blocked_egress when a picture is taken.

Pages behind a login

A page feed has no field for a user name, a password or a cookie, and the browser starts fresh each time with nothing remembered. A page that needs you to sign in shows its sign-in page, and that is the picture you get. For a dashboard that needs a login, push the picture from where you are signed in.

Sites that refuse us

Stillframe visits from a data centre. Some sites answer that with an error (http_403, http_429); the feed then fails and says so, and the address keeps serving the last good picture. Some sites answer with a normal page that asks whether you are a person. That is a page like any other to Stillframe, and it is what gets photographed. We do not get around these checks.

How long we wait

Which camera streams work

streamworks?
RTSP, such as rtsp://user:password@host:554/pathYes, over TCP. RTSP over UDP is not used. rtsps:// is not accepted.
MJPEG over http:// or https://Yes.
HLS (.m3u8) over http or httpsNot tested. It goes through the same code as MJPEG and may work. Do not rely on it.
An address on a private networkNo. See above.

One frame is taken each time, then drawn again for your canvas and format.

What is hidden in the answers you get back: for a camera, the user name and password (rtsp://***@host/path) and every value after a ? (?user=***&channel=***); a part with no = in it, such as ?hunter2, counts as a value and is hidden whole; the names stay, so you can tell which parameters you set. Stillframe does not guess which ones are secret. The same hiding applies in the dashboard and in Stillframe's own logs and error messages. The full address is kept, and is what the camera is given. What is not hidden: anything in the path of the address (rtsp://host/user/password/stream), and the address of a page feed, where only a password before the @ is hidden.

The try-out on the home page

The box on the home page takes one picture of one address, with no account. It follows every rule a page feed does: only http and https, no user name or password in the address, only the ports we fetch from, no private or local address, no page that needs you to sign in, and the same refusals for a site that will not talk to us. The picture is 1920 by 1080, has a band across the top that says it is a try-out, and is deleted 10 minutes after it is taken.

The limits are: 3 pictures an hour from one visitor, 6 pictures an hour for any one site, 60 an hour and 300 a day for everyone, one at a time per visitor, and at most 5 waiting. When a limit stops you the answer says which, and how long to wait.