Video and cameras

Dahua cameras

Everything a Dahua camera needs, from unboxing to a working recording

A club camera does two separate jobs. It sends live video to SportyPlus as a match is played, and — on Dahua cameras registered with DoLynk Cloud — it keeps its own copy on an SD card inside the camera.

The second job is what saves you when the club's internet drops mid-match. Video sent live and lost is gone; video on the card can be fetched afterwards, and the match arrives complete, just a little later.

This page covers both, in the order you would do them.

Only Dahua models supported by DoLynk Cloud can keep the second copy. Cameras from other manufacturers still stream to SportyPlus — they just have nothing to fall back on, so a dropped connection loses that footage permanently.

What you need

  • a supported Dahua camera, already initialised (using Dahua's ConfigTool or their mobile app) and reachable on the venue network
  • an SD card fitted, sized for the retention you want — at the quality below a 128 GB card holds roughly a week at typical opening hours, or about three days if it records around the clock
  • the camera added to your DoLynk Cloud account
  • the camera's web interface password
  • the camera's stream address, which SportyPlus gives you once the camera exists in Club Admin

The short version

If you know your way around a Dahua camera, this is the whole configuration:

WhereSettingValue
Camera → EncodeCompressionH.264 — never H.265
Camera → EncodeSmart CodecOff
Camera → EncodeResolution1920×1080
Camera → EncodeFrame Rate30 (25 in PAL installs), fixed
Camera → EncodeBit Rate TypeCBR
Camera → EncodeBit Rate4096 Kb/s (never above 6144)
Camera → EncodeI Frame Interval30
Camera → EncodeSVC1 (off)
Camera → AudioCompressionAAC — no other codec works
Network → RTMPStream TypeMain Stream
Network → RTMPAddress TypeCustom
Network → RTMPCustom Addressthe stream address from Club Admin
Record → Record controlRecord ModeAuto
Record → Record controlMax Duration30–60 minutes
Record → StorageStorage MethodLocal storage
Record → StorageDisk FullOverwrite
System → Date & TimeTime ZoneUTC, DST off

Everything below explains why, and what goes wrong when one of them is missed.

Video quality

These live in Camera → Encode, on the Main Stream side. The main stream is the one that gets sent and recorded; the sub stream is only used for previews.

I Frame Interval — the one nobody expects to matter

Set it to 30. At 30fps that is one keyframe per second; at 25fps it is a little over a second, which is equally fine.

A camera only lets a viewer join at a keyframe, and live video is cut into chunks on keyframe boundaries. A camera sending a keyframe once every 25 seconds produces 25-second chunks, and live view ends up more than a minute behind the court — watchable, but useless to anyone standing beside it.

One second between keyframes brings that down to a few seconds, and costs a little bitrate and nothing else. Do not go above it: a 2-second interval means roughly 2-second chunks and about 6 seconds of delay, and it grows from there.

A camera can be set to a short interval and still not honour it. Smart Codec (also called H.264+) overrides it, and so can a stream profile that was set up somewhere other than this page. After changing it, check that live view actually caught up rather than assuming the setting took.
Do not go below the lowest value your camera offers, and do not try. On these cameras that is usually 30 — but a smaller number can be written without any complaint, and the camera then publishes a stream containing no keyframes at all, which takes the court off air completely. Nothing reports an error. Setting it back is the only cure.

Compression — H.264, never H.265

H.265 breaks live video and recordings completely, and silently. The camera connects, the stream is accepted, everything looks healthy from the club's side, and no picture ever arrives. There is no error anywhere to point at it.The camera's own copy on the SD card is fine — but nothing ever goes to fetch it, because from our side the recording looks complete rather than broken. There is no gap to repair, so the safety net does not trigger.That is what makes this the most expensive setting on the page: a club can stream all season assuming live view is simply broken, and find at the end of it that the archive is empty too, with the footage still sitting on the cards.If a camera streams nothing at all and every other setting looks right, this is the first thing to check.

Set Compression to H.264. Encode Mode H.264H (High) is the default and is right; H.264B (Baseline) is also fine and slightly faster to display.

Smart Codec — off

Smart Codec saves storage by holding back keyframes when nothing in the picture moves. On a court between points, that is most of the time.

It is the wrong trade here: it costs latency in live view, and it makes chunks long and irregular, which is exactly what gap recovery struggles with. Off.

Resolution, frame rate and bitrate

1920×1080 at 30fps, 4096 Kb/s, CBR is the baseline. It is a deliberate starting point rather than a maximum — it looks good on a phone, it is kind to a club uplink, and it is the profile the rest of the system is tuned around.

Higher is not automatically better. Nothing is re-encoded on the way to a viewer, so every person watching pulls the full bitrate the camera sends: doubling it doubles what the club's connection has to carry for each of them. Do not go above 6144 Kb/s at this resolution without asking us first.

Avoid 4K, and avoid 50 or 60fps. Neither breaks anything by itself, but they multiply what every viewer downloads, and the vendor profiles that ship with them tend to carry long keyframe intervals — which is how a camera ends up more than a minute behind without anybody changing a setting.

Use a fixed frame rate. Variable frame rate makes chunk lengths uneven, and uneven chunks slow live view down for everyone watching that court.

CBR, not VBR. A constant bitrate is predictable for the club's connection and for us. VBR spikes on movement, which is precisely when a match is worth watching, and nothing smooths those spikes out before they reach a viewer.

Audio

If the camera has a microphone, set Camera → Audio → Compression to AAC.

Only AAC works. Dahua cameras often default to G.711A or G.726, and those are accepted by everything along the way — the camera connects, the video plays, and the sound is simply never there. No error appears anywhere, so it reads as a broken microphone rather than a setting.If a club reports "the camera has no sound", check this before touching the hardware.

A camera with no microphone at all is fine. It streams and records normally, without an audio track.

Live streaming

The camera pushes its video to SportyPlus itself. Get the address from Club Admin → Commercial → Cameras, open the camera, and copy the stream address shown there. It looks like:

rtmp://stream1.sporty.plus/stream/<playback-id>?key=<stream-key>

Then in the camera, under Setting → Network → RTMP:

FieldValue
Enablechecked
Stream TypeMain Stream
Address TypeCustom
Custom Addressthe address from Club Admin, copied exactly

Leave the reconnect settings alone. A camera that drops and comes back is handled for you, and an interrupted recording is stitched together afterwards.

Stream Type must be Main Stream. The quality settings above are set on the main stream, so a camera pushing Sub Stream 1 sends none of them — and it looks exactly like the settings did not take.
The ?key= part is not optional. Without it, or with a single character wrong, the stream is refused and the camera retries silently forever. The camera shows no useful error, so a mistyped address looks like a network problem.Every camera has its own address and its own key. They cannot be shared or reused between cameras — two cameras on one key cannot both stream.
The RTMP page is only reachable on the venue network. The remote link described below opens most of the camera's settings, but not its network configuration — so the stream address has to be entered on site, or with Dahua's ConfigTool, when the camera is first installed.
The stream address contains a key that is specific to that camera. Treat it as a password: anyone holding it can publish video to that court.

Local recording — the second copy

Four settings live only in the camera's own interface. Get these wrong and everything looks correct from SportyPlus — the card reports healthy, recording appears enabled, the schedule looks right — while the camera writes nothing to the card at all.If footage is ever missing, check these first.
SettingWhereSet to
Storage MethodRecord → StorageLocal storage
Record ModeRecord → Record controlAuto
Max DurationRecord → Record control30–60 minutes
Time ZoneSystem → Date & TimeUTC, DST off

Storage Method — the one that catches people out

Some cameras arrive set to network storage (SFTP upload), which sends recordings to a server elsewhere instead of the card. The card then stays empty and there is nothing to recover from.

Set it to Local storage, and set Disk Full to Overwrite so a full card keeps recording over its oldest footage instead of stopping.

Record Mode

Auto makes the camera follow the recording schedule SportyPlus sends it.

  • Manual records continuously and ignores the schedule
  • Off records nothing, whatever the schedule says

Max Duration

The camera writes video in chunks, and a chunk can only be retrieved once it is finished. This setting decides how quickly a gap can be repaired.

At 120 minutes, footage from a 6pm match might not be recoverable until 8pm. SportyPlus keeps trying, so the recording still completes — it just takes longer. Shorter chunks recover faster but create more files. 30–60 minutes is a sensible balance.

Time Zone

Set the camera to UTC with daylight saving off.

Recordings are requested from the camera by time, so a camera whose clock is an hour out returns the wrong hour. SportyPlus checks the camera's clock against its own recordings and corrects for a mismatch, but putting every camera on UTC avoids the problem instead of correcting it.

Changing a camera's clock does not change recordings it has already made, so for a while afterwards the card holds footage in both the old and new time. This is handled automatically and settles on its own.

Connecting it to SportyPlus

In Club Admin → Commercial → Cameras, create or edit the camera and set:

  • Camera type — DoLynk (Dahua) device
  • Device serial number — from the camera or DoLynk Cloud
  • Channel — 0 for a single-lens camera
  • Court — the court the camera actually points at
Double-check the court. A camera mapped to the wrong court records the wrong match, and nobody notices until someone watches one back — by which point the footage they wanted is gone.

Save, then reopen the camera. A Camera device panel appears, reading live from the hardware.

In the Camera device panel

ControlWhat it does
Recording statusWhether the card has anything recent on it — see below
SD cardHow much of the card is in use
Record to SD cardMaster switch. With this off, the schedule below does nothing
Local recording scheduleWhen the camera records to its own card
Flip imageFor a camera mounted upside down
Illuminator brightnessPer lighting scene, where the camera supports it
On-screen textText burnt into the picture, so it appears in recordings too
Video qualityResolution, frame rate, bitrate and keyframe interval per stream
Start / Stop streamingTurns the live push on or off
Sync recordingsRe-checks the camera for recordings SportyPlus has not collected
Format SD cardErases everything on the card
Open the camera's own settingsOpens the camera's interface from anywhere

Set the schedule to cover your opening hours. Outside those hours the camera records nothing locally, so nothing can be recovered from that period.

Both the switch and the schedule must be right. If a schedule is set while the switch is off, the panel says so.

Recording status

The line above the settings answers a different question from the rest of the panel: not what is this camera configured to do, but is it doing it.

  • Recording to the card — with the time of the newest footage found
  • This camera is not recording to its card — the card has nothing recent on it, whatever the settings say

The second one means gap recovery cannot help this court right now. It usually points at Storage Method or Record Mode above.

Open the camera's own settings

This opens the camera's own interface through DoLynk, from anywhere — no need to be at the club. It is how you reach the settings SportyPlus cannot change: Smart Codec, storage method, record mode, chunk length and the clock.

It does not reach the camera's network configuration, so the RTMP stream address still has to be set on the venue network.

Checking it works

  1. Live view — open the camera in Club Admin. Set up as described, the picture runs about 3 seconds behind the court. At a 2-second keyframe interval it is about 6. If it is a minute or more behind, the I Frame Interval is far too long, or Smart Codec is on.
  2. The card is filling — leave the camera recording for a few minutes and reopen the panel. Recording status should say Recording to the card, and the SD card figure should be climbing.
  3. A real recording — play back a reservation recorded on that court.
Formatting the card does not fix a camera that is not recording. If nothing is being written, the cause is in the settings above — formatting only erases footage you might have wanted.

When a recording has a gap

If the connection drops mid-match, the recording shows one of three things:

  • Recovering missing footage — the missing part is being fetched from the camera and will appear shortly
  • This recording has a gap — part of the match was not captured
  • Some footage is missing for good — the connection dropped and the camera had no copy either, usually because it was not recording locally at the time

The first is normal and resolves on its own. The third means the settings on this page were not in place when the match was played.

If something is wrong

What you seeUsually means
Live view is a minute or more behindI Frame Interval too long, or Smart Codec on
Live view delay got worse on its ownThe camera is dropping keyframes — see below
Live view never appears, stream looks connectedH.265 instead of H.264, or too low a keyframe interval — see below
Live view never appears at allRTMP address wrong, or the camera cannot reach the internet
Video plays but there is no soundAudio compression is not AAC
Quality settings appear to do nothingRTMP Stream Type is Sub Stream, not Main Stream
Live view stutters or drops outBitrate too high for the club's upload
Not recording to its card, card healthyStorage Method is not Local storage, or Record Mode is Off
Recordings have gaps that are never repairedCamera was not recording locally when the match was played
Nothing can be recovered from this cameraNo SD card fitted, or the card has failed

The camera is connected but nothing plays

This one symptom has three causes, and none of them reports an error anywhere. The camera connects, the club's internet is fine, and no picture ever arrives — live or recorded.

  1. Compression is H.265. Set it to H.264.
  2. I Frame Interval is below 30. Set it back to the frame rate.
  3. The camera is not sending keyframes for some other reason — a reboot usually settles it.

Work through them in that order. All three look identical from the outside, and in all three the recording SportyPlus makes is as empty as the live view.

The camera's own copy on its card is unaffected — but it is only fetched to repair a gap, and a recording with no video in it does not look like a gap. So the card copy stays on the card.

Why delay can drift upward on its own. Live view runs as far behind as the longest chunk in the last few seconds, not the average. A camera that mostly sends keyframes on time but occasionally misses one will sit at the slower figure until it stops missing them.So live view that "randomly got worse" is usually the camera's keyframes, not the club's internet. In practice the cause is almost always a keyframe interval set too high rather than keyframes going missing, so check that it equals the frame rate before looking anywhere else.