Chúng ta có thể lưu file của camera trong thẻ nhớ hoặc NAS, nhưng snapshot/clip được camera nén trong một file lớn phải dùng phần mềm của hãng để xem.
Python script Hikvision/Hiwatch Video downloading có thể giúp trích xuất các file riêng lẻ dạng .jpg hay .mp4.
Sử dụng rất đơn giản
media_download.py [-u] [-p] CAM_IP START_DATE START_TIME END_DATE END_TIME
-u: use parameters as UTC time, otherwise use as camera's
local time
-p: download photos instead of videos
# Thí dụ
media_download.py 10.10.10.10 2020-04-15 00:30:00 2020-04-15 10:59:59
Trước đó phải mở file media_download.py để điền user_name và user_password để login vào camera
Giả sử chúng ta cần trích video mỗi ngày một cách tự động, có thể sửa một chút trên media_download.py và đổi tên thành hik_downloader.py:
- Cú pháp được đơn giản: dùng các option
-d -t -D -T
thay choSTART_DATE
START_TIME
END_DATE
END_TIME
. Tất cả đều là tùy chọn và có giá trị mặc định - Thêm option
-o n_days
để xóa thư mục/file cũ hơnn_days
ngày - Thêm option
-f --force
ghi đè nếu file đã tải về - Thêm option
-a --all
liệt kê tất cả file bao gồm cả file đã tải về - Khai báo
cam_name, user_name, user_password
theo IP của từng camera - Giờ kết thúc của clip cuối đã tải về (
last_time
) được ghi trong file text.idx
- Bỏ qua các file đã tải về nếu
START_TIME < last_time < END_TIME
. Để tải lại file có thể dùng option-a
, hay đặtEND_TIME < last_time,
hay sửa file.idx
- chown các file tải về nếu có đặt
owner = 'user:group'
(eg. dành cho samba)
Sau đó, cú pháp của chúng ta là
usage: hik_downloader.py [-h] [-d START_DATE] [-t START_TIME]
[-D END_DATE] [-T END_TIME] [-u] [-p] [-f] [-a] IP
positional arguments:
IP camera's IP address
optional arguments:
-h, --help show this help message and exit
-d START_DATE, --START_DATE START_DATE
start date of interval
-t START_TIME, --START_TIME START_TIME
start time of interval
-D END_DATE, --END_DATE END_DATE
end date of interval
-T END_TIME, --END_TIME END_TIME
end time of interval
-o OLDER, --OLDER OLDER
remove folders older than ? days
-u, --utc use parameters as UTC time, ...
otherwise use as camera's local time
-p, --photo download photos instead of videos
-f, --force overwrite if file exists
-a, --all list all files ...
including all downloaded files
Khi đó chạy crontab để tải về mỗi ngày, đồng thời xóa thư mục/file cũ hơn 7 ngày
59 23 * * * /path/to/hik_downloader.py cam_ip -o 7
- Hoặc tải về định kỳ mỗi giờ
# mặc định bỏ qua các file đã tải về
0 * * * * /path/to/hik_downloader.py cam_ip
- Hoặc thêm vào crontab của www-data để tải về với user www-data
# crontab -u www-data -e
0 * * * * /path/to/hik_downloader.py cam_ip
- Tải file tại một quảng thời gian trong ngày, với user www-data
sudo -u www-data /path/to/hik_downloader.py -t 17:00:00 -T 17:30:00 cam_ip
- Tải file thuộc nhiều ngày, file được chia vào các thư mục có tên là ngày ghi video/snapshot
hik_downloader.py 10.10.10.10 -d 2023-02-10 -D 2023-02-18
Chú thích
- Không hỗ trợ
đa luồng
. Nếu có thêm hik_downloader.py khởi chạy thì nó sẽ tự động reboot camera - option
-o --OLDER
dựa trên ngày ghi video clip hay snapshot, thể hiện qua tên thư mục, không phải ngày tạo file trên local - Có thể chạy file build.sh để ghép các file python thành phần vào một file duy nhất, tuy rằng các khai báo import có thể trùng lặp.