Skip to content

Commit

Permalink
Read me updates
Browse files Browse the repository at this point in the history
  • Loading branch information
QuantumEntangledAndy committed Sep 8, 2021
1 parent ad0b79e commit 79e0126
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 13 deletions.
37 changes: 26 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,13 +106,14 @@ or your package manager on Linux.
1. Note: you can also click on [this link][ci-download] to see all historical builds.
You will need to be logged in to GitHub to download directly from the builds page (wget doesn't work)
Raspberry Pi OS x64 example:
Ubuntu/Debian/Raspberry Pi OS example:
```bash
unzip release-arm64-buster.zip
sudo cp neolink /usr/local/bin/
sudo chmod +x /usr/local/bin/neolink
```
4. Write a configuration file for your cameras. See the section below.
5. Launch Neolink from a shell, passing your configuration file:
Expand Down Expand Up @@ -189,18 +190,29 @@ bridging mode](https://github.com/docker/for-linux/issues/637)
[Blue Iris setup walkthrough in `docs/`][blue-iris-setup] (which is probably
also helpful even with other NVR software).

**Note**: more comprehensive setup details for linux based devices is provided in
[docs/unix_setup.md][unix-setup]

**Note**: instructions for also setting up a (systemd based) service for linux
based devices is provided in [docs/unix_service.md][unix-service]

[blue-iris-setup]: docs/Setting%20Up%20Neolink%20For%20Use%20With%20Blue%20Iris.md
[unix-setup]: docs/unix_setup.md
[unix-service]: docs/unix_service.md

Copy and modify the `sample_config.toml` to specify the address, username, and
password for each camera (if there is no password, you can omit that line).
The address can be a camera UID, in this case your network must support UDP
broadcasts. Battery cameras exclusively use this UDP mode so you must always
use a UID in the address field.
The default credentials for some cameras is username `admin` password `123456`.

- For a non battery powered camera you need to provide the address field with the
ip and port (default 9000).

- For a battery powered camera you need to provide the uid field with the
camera's UID. In this case your network must support UDP.
Battery cameras exclusively use this UDP mode so you must always use a UID.

Each `[[cameras]]` block creates a new camera; the `name` determines the RTSP
path you should connect your client to.
Currently Neolink cannot auto-detect cameras like the official clients do; you
must specify their IP addresses directly.

By default, the HD stream is available at the RTSP path `/name` or
`/name/mainStream`, and the SD stream is available at `/name/subStream`.
Expand All @@ -215,16 +227,16 @@ You can modify this by changing the `bind` and the `bind_port` parameter.
You only need one `bind`/`bind_port` setting at the top of the config file.

You can enable `rtsps` (TLS) by adding a `certificate = "/path/to/pem"` to the
top section of the config file. This PEM should contain by the certificate
top section of the config file. This PEM should contain the certificate
and the key used for the server. If TLS is enabled all connections must use
`rtsps`. You can also control client side TLS with the config option
`rtsps`. You can also use client side TLS with the config option
`tls_client_auth = "none|request|require"`; in this case the client should
present a certificate signed by the server's CA.

TLS is disabled by default.

You can password-protect the Neolink server by adding `[[users]]` sections to
the configuration file:
the configuration file, but this is not secure without also using TLS:

```
[[users]]
Expand Down Expand Up @@ -257,11 +269,13 @@ You can change the Neolink log level by setting the `RUST_LOG` environment
variable (not in the configuration file) to one of `error`, `warn`, `info`,
`debug`, or `trace`:
- On sh:
```sh
set RUST_LOG=debug
```

On Linux:
- On Bash:

```bash
export RUST_LOG=debug
Expand Down Expand Up @@ -317,7 +331,7 @@ been upgraded several times.
The modern variant uses obfuscated XML commands and sends ordinary H.265 or
H.264 video streams encapsulated in a custom header.

More details about the on-the-wire protocol will come later.
More details of the on-the-wire protocol are provided in [`dissector/`](dissector/).

### Baichuan dissector

Expand All @@ -326,6 +340,7 @@ directory.

It dissects the BC header and also allows viewing the deobfuscated XML in
command messages.
(It cannot deobfuscate newer messages that use AES encryption.)
To use it, copy or symlink it into your Wireshark plugin directory; typically
this is `~/.local/lib/wireshark/plugins/` under Linux.

Expand Down
8 changes: 6 additions & 2 deletions sample_config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ name = "driveway"
username = "admin"
password = "12345678"
address = "192.168.1.187:9000"
# If you use a battery camera: **Instead** of an `address` supply the uid
# as follows
# uid = "ABCD01234567890EFG"

# By default any of the users can connect (or anyone at all if no users are specfied)
# You can uncomment the following to permit only specfic users
Expand All @@ -50,8 +53,9 @@ name = "storage shed"
username = "admin"
password = "987654321"
address = "192.168.1.245:9000"
# The address could instead be set to a camera UID like this
# address = "ABCD01234567890EFG"
# If you use a battery camera: **Instead** of an `address` supply the uid
# as follows
# uid = "ABCD01234567890EFG"

# If you use an NVR that relays several camera connections you can choose which
# camera to connect to with by setting the `channel_id`
Expand Down

0 comments on commit 79e0126

Please sign in to comment.