tanidvr(1)

NAME
tanidvr - tool for DVRs and IP cameras based on DVR-IP protocol used by Dahua

SYNOPSIS
tanidvr -m <mode> -t <address> -u <user> -w <password> [OPTION]

DESCRIPTION
TaniDVR is a CLI tool for accessing DVRs and IP cameras used for CCTV surveillance systems based on the proprietary DVR-IP protocol (port 37777/TCP).

The main use of TaniDVR is to dump video from a device. With this, it can record to a Matroska (MKV) file or dump the video in realtime to play in an external player.

OPTIONS

-m, --operation-mode
    0 - display DVR information. 1 - dump video.

-t, --dvr-target
    IP/hostname.

-p, --dvr-port
    Network port (default 37777).

-u, --dvr-user
    DVR user (may not work if not admin!).

-w, --dvr-password
    DVR password.

-c, --dvr-channel
    0-255 (default 0).

-s, --dvr-sub-channel
    0 - main (default). 1 - secondary.

-a, --net-protocol-dialect
    0 - common dialect (default). 1 - common dialect, while emulating OEM client behavior.

-n, --media-container
    0 - DVR native: DHAV (.dav|.dhav) or RAW H.264 (depends on the DVR itself). 1 - Matroska (.mkv) (default).

-f, --out-file
    <filename> (default: empty -- console stdout).

-k, --keep-alive
    <mili_seconds> (default: 100ms). Send innocuous packets to the DVR in order to avoid the connection to be dropped gratuitously. To disable (not recommended), set to 0.

-e, --timeout
    <mili_seconds> (default 5000ms). Inactivity timeout for DVR connection to be considered dead. A new DVR connection is started after this. To disable (not recommended), set to 0.

-x, --sixty-hertz-ntsc
    (default: not enabled). If defined, assumes NTSC field frequency to be 60Hz, instead of the typical 59.94Hz. Some cameras do generate exact 60Hz video. This switch does NOT affect PAL video.

-r, --ts-proc
    0 - No correction will be performed to the buggy DHAV stream timestamps. 1 - Perform timestamp correction (default).

-h, --help
    Prints help message and exit.

EXAMPLES

•   Show some information about the DVR.

              tanidvr -m 0 -t 192.168.0.12 -u admin -w secret1234

•   Record a video to a file.

              tanidvr -m 1 -t 192.168.0.12 -u admin -w secret1234 -c 2 -f camera2.mkv

•   Play the video in realtime with an external player.

              tanidvr -m 1 -t 192.168.0.12 -u admin -w secret1234 -c 2 | mplayer -cache 32 - 2>/dev/null

•   Simple media server and some clients. NOTE: INSECURE. NOT to be implemented as-is. It is shown only for didactic purposes.

              (server at 192.168.20.1)
              tanidvr -n 0 -m 1 -t 192.168.0.12 -u admin -w secret1234 -c 5 | ncat --broker -l 192.168.20.1 2000
              (clients ; same/other host)
              ncat --recv-only 192.168.20.1 2000 | dhav2mkv | mplayer -cache 32 -
              ncat --recv-only 192.168.20.1 2000 | dhav2mkv > channel_5_realtime_backup.mkv
              ncat --recv-only 192.168.20.1 2000 > channel_5_realtime_backup.dhav

AUTHOR
tanidvr was written by Daniel Mealha Cabrita <dancab@gmx.net>.

This manual page was written by Marcos Talau <marcos@talau.info> for the Debian project (but may be used by others).