Roku channel

Your security cameras on the big screen

Every camera on your Reolink NVR, in one grid, on the TV you already have. Open any camera full screen, pan and tilt with the D-pad, and let follow motion put whatever is happening in front of you.

A one-time purchase · Local network only · No cloud account · Independent — not affiliated with Reolink

The Kestrel camera wall: twelve camera tiles in a grid on a TV, each captioned with its camera name, one selected with a copper border.

Camera imagery throughout is stand-in stock footage, not real cameras.

Read this first

How live video actually works

Roku cannot play any of the live video formats Reolink produces

Reolink devices publish RTSP, RTMP and HTTP-FLV. Roku's video player supports HLS, DASH, Smooth Streaming and progressive MP4. There is no overlap — this is a fixed platform limitation, not something a channel can work around on the device.

1. Snapshot stream — the default, works immediately

Kestrel polls the camera's JPEG snapshot endpoint and swaps the image continuously. This needs no extra infrastructure at all: point the channel at your NVR and it works.

Full screen always asks for the best stream the camera offers; the wall polls more slowly and can use a lighter one. There is no audio, and it is a frame sequence rather than true video — the real ceiling is how fast the NVR produces a JPEG and the Roku decodes it, not the interval you configure.

For a camera wall, checking the driveway, or lining up a PTZ shot, this is genuinely fine. For watching motion in detail, it is not.

A single camera filling the TV screen in Kestrel's live view.

2. HLS via a restreamer — full-motion video

If you already run something that converts RTSP to HLS — go2rtc, MediaMTX or Frigate — Kestrel will play that instead, giving real video with audio.

Set HLS URL template in Settings to a URL containing {ch} for the zero-based channel number, or {ch1} for the one-based one:

http://192.168.1.50:1984/api/stream.m3u8?src=cam{ch}

Then press OK in live view and choose Switch to HD video. If the stream fails, the channel falls back to snapshots and tells you why. Expect a few seconds of latency — that is inherent to HLS, not to Kestrel.

A matching go2rtc.yaml for a 4-channel NVR:

streams:
  cam0: rtsp://viewer:[email protected]:554/h264Preview_01_main
  cam1: rtsp://viewer:[email protected]:554/h264Preview_02_main
  cam2: rtsp://viewer:[email protected]:554/h264Preview_03_main
  cam3: rtsp://viewer:[email protected]:554/h264Preview_04_main

Reolink's RTSP paths are one-based and zero-padded, while the channel numbers in the API are zero-based — hence {ch} mapping to cam0 above. Use main for full resolution or sub for a lighter stream.

Features

Designed for a remote control

Ten feet away, with eight buttons — so nothing hides behind a cursor.

A wall that gets out of the way

Every connected camera in one grid, refreshing continuously. Leave the remote alone for fifteen seconds and the header and footer hide, the cameras expand to fill the screen, and any key brings the chrome back.

The camera wall with its header and footer hidden, cameras filling the whole screen.

Follow motion

Press on the wall and the screen shows every camera currently detecting something — up to four at once as a mini-grid, or full screen when only one is active.

Detection comes from the device's own AI state, which classifies people, vehicles, animals, faces and packages, with plain motion as the fallback for cameras without classification. Both are batched into a single request per poll, so watching fifteen cameras costs two round trips rather than thirty.

A camera keeps its place for a dwell period — twelve seconds by default — after it stops detecting, because detection flickers on and off constantly during a real event. When the last dwell expires the screen hands back to the wall, so the wall is the resting state and follow mode is what happens when something occurs.

The camera wall showing twelve cameras, one highlighted.

PTZ, presets and lights

Pan and tilt with the D-pad, zoom with the transport keys, and jump to the presets saved on the camera. Infrared illuminators and spotlights toggle per camera from the same menu.

Controls only appear for cameras whose reported capabilities include them, so a fixed camera never offers a control that would only produce an error. Dual-lens cameras such as TrackMix expose their telephoto as a second logical channel rather than optical zoom, so the transport keys switch lens instead: ▶▶ for telephoto, ◀◀ back to wide.

Kestrel's camera controls menu over a live view, listing presets and light controls.
The remote

Controls

Camera wall

KeyAction
D-padMove between cameras
OKOpen live view
Follow motion
Settings

Live view

KeyAction
D-padPan and tilt — hold to keep moving
◀◀ / ▶▶Zoom out / in, or switch lens on dual-lens cameras
OKCamera controls — presets, lights, lens, video mode
BackReturn to the wall
Setup

A short form, then you are done

The channel opens on a Connect screen asking only for what cannot be guessed. Everything else starts on a sensible default.

SettingNotes
Host or IP addressYour NVR or camera on the LAN
Username / PasswordA dedicated non-admin account is recommended
Allow self-signed certificateOn by default — correct for a local device using its factory certificate

Choosing Connect checks the details against the device and only continues once it answers, so a wrong host or password is corrected in place rather than failing later. If your device is on a non-standard port or serves HTTPS, More settings… opens the full list — and the connection error points there too, so the short form is never a dead end.

Kestrel's Connect screen on a TV, with fields for host, username and password.

Full settings

Reachable any time from on the camera wall, or OKSettings… in live view. Settings persist across launches in the Roku registry, and Forget saved settings clears the stored host and credentials.

SettingDefaultNotes
Port80Switching the HTTPS toggle moves this to 443
Use HTTPSOffOnly if your device serves its web UI over TLS
Live view refresh2 / secUp to 4 / sec
Camera wall qualitySub streamUsually plenty for grid tiles
Camera wall refresh1 every 2 sSlower is easier on the NVR
PTZ speedNormalHow fast the camera moves when you hold a direction
HLS URL templateNoneSee HLS setup
Companion channel

Kestrel Screensaver

Your camera wall, while the TV rests — free alongside the app.

An idle TV fills with the cameras on your NVR — every connected camera at once, tiled edge to edge across the whole screen, refreshing continuously. There is no interface over the top of it: no header, no captions competing for attention, nothing to dismiss. Just the cameras.

Dimmed for a dark room

A screensaver comes on unattended, and often while the house is asleep. A wall of daylit camera feeds at full brightness would light the room, so the picture sits behind a soft wash — dark enough not to be a lamp, clear enough to read from across the room if something catches your eye.

Set up once, in the app

The screensaver has no settings of its own, because a screensaver cannot take remote input. It reads the NVR address and credentials you already entered in the Kestrel app. Install Kestrel first, connect it to your NVR, then choose Kestrel Screensaver under Settings → Screen saver.

The Kestrel screensaver: camera tiles filling the entire TV screen, dimmed, with no interface over them.

Why it is a separate channel

Roku does not allow an app to carry its own screensaver, so this ships as a second entry built from the same source. It must be installed alongside the Kestrel app — signed with the same developer key, it reads the settings the app already wrote. Without the app installed and connected, it shows a message telling you to open Kestrel and set up your NVR, and nothing else.

Install

Getting Kestrel on your Roku

Kestrel

One-time purchase · Roku Channel Store

Coming to the Roku Channel Store, at the price shown there. Once published, buy it from the channel store on your TV or from your Roku account on the web.

Coming soon

Kestrel Screensaver

Free · Roku Channel Store

Free, and a separate store entry installed alongside the app. Select it afterwards under Settings → Screen saver on the TV.

Coming soon

What you pay, and what you get

Kestrel for Roku is bought once. There is no subscription, no recurring charge, no in-app purchase and no advertising. The purchase is tied to your Roku account, so it covers every Roku on that account and survives reinstalling the channel.

Kestrel Screensaver is free. It is useless without the app — it has no settings of its own and reads the app's — so charging for it twice would be charging twice for one product. Roku takes the payment and issues the receipt; refunds go through Roku, and the Terms set out how that works.

What you need

  • A Reolink NVR or camera reachable on the same network as your Roku
  • A user account on that device — a dedicated non-admin account is recommended
  • Roku firmware 15.1 or later

Security notes

  • Credentials are stored in the Roku registry in clear text. The registry is private to the channel and not readable by others, but it is not encrypted, and anyone with your Roku's developer password can read it.
  • Snapshot URLs carry the session token as a query parameter, which is how the Reolink API is designed. Over plain HTTP on your LAN, that token is visible to anything sniffing the network.
  • Keep this on your LAN. Do not port-forward your NVR to the internet to make it work.

These are stated here rather than discovered later. The privacy policy covers what is stored and where in full.

Known limitations

  • Snapshot mode has no audio; HLS mode does, subject to your restreamer.
  • Two-way talk is not implemented — a Roku has no microphone input.
  • Standalone cameras that do not report a channel list appear as a single channel.
  • Battery-powered cameras that sleep show as offline until they wake.
  • Reolink's capability reporting varies by model and firmware; if a control you expect is missing, the device did not report it.