add SFTP, SMB support

This commit is contained in:
Pavel Muhortov 2023-06-28 19:41:33 +03:00
parent ba72ef9407
commit cb03bae49b
4 changed files with 1163 additions and 370 deletions

4
.vscode/launch.json vendored
View File

@ -63,8 +63,8 @@
"request": "launch", "request": "launch",
"program": "${file}", "program": "${file}",
"args": [ "args": [
"-d", "-w",
"-1", "-3",
"-c", "-c",
"-p" "-p"
], ],

View File

@ -64,6 +64,7 @@ crontab -e
> >
> - [Python 3](https://www.python.org/downloads/) (tested version 3.9.5 on [Debian GNU/Linux 11](http://ftp.debian.org/debian/dists/bullseye/)) > - [Python 3](https://www.python.org/downloads/) (tested version 3.9.5 on [Debian GNU/Linux 11](http://ftp.debian.org/debian/dists/bullseye/))
> - [paramiko](https://www.paramiko.org/) Python 3 module (tested version 3.1.0) > - [paramiko](https://www.paramiko.org/) Python 3 module (tested version 3.1.0)
> - [smbprotocol](https://github.com/jborean93/smbprotocol) Python 3 module (tested version 1.10.1)
> - [ffmpeg](https://ffmpeg.org) (tested version 4.3.4 on [Debian GNU/Linux 11](http://ftp.debian.org/debian/dists/bullseye/)) > - [ffmpeg](https://ffmpeg.org) (tested version 4.3.4 on [Debian GNU/Linux 11](http://ftp.debian.org/debian/dists/bullseye/))
> - specified record pictures filesystem organization > - specified record pictures filesystem organization
> >

View File

@ -15,31 +15,37 @@
[enable-broadcast] [enable-broadcast]
# List the broadcast block names. Only blocks with the TRUE value will be used. # List the broadcast block names. Only blocks with the TRUE value will be used.
#
camera.test.local = true camera.test.local = true
[enable-sequences] [enable-sequences]
# List the sequence camera block names. Only blocks with the TRUE value will be used. # List the sequence camera block names. Only blocks with the TRUE value will be used.
#
camera.test.local = true camera.test.local = true
[enable-sensors] [enable-sensors]
# List the sensor block names. Only blocks with the TRUE value will be used. # List the sensor block names. Only blocks with the TRUE value will be used.
#
sensor.test.local = true sensor.test.local = true
[enable-convert] [enable-convert]
# List the convert block names. Only blocks with the TRUE value will be used. # List the convert block names. Only blocks with the TRUE value will be used.
#
camera.test.local = true camera.test.local = true
[enable-publish] [enable-publish]
# List the publish block names. Only blocks with the TRUE value will be used. # List the publish block names. Only blocks with the TRUE value will be used.
#
camera.test.local = true camera.test.local = true
[broadcast-config:camera.test.local] [broadcast-config:camera.test.local]
# Broadcast parameter description block always starts with "broadcast-config:". # Broadcast parameter description block always starts with "broadcast-config:".
#
src = rtsp://user:pass@192.168.254.253:554/Streaming/Channels/101,http://radio.fm:8000/stream.mp3 src = rtsp://user:pass@192.168.254.253:554/Streaming/Channels/101,http://radio.fm:8000/stream.mp3
dst = rtp://239.0.0.1:5554 dst = rtp://239.0.0.1:5554
# Optionality you can change video stream framerate. # Optionality you can change video stream framerate.
@ -66,9 +72,11 @@ dst = rtp://239.0.0.1:5554
[sensor-config:sensor.test.local] [sensor-config:sensor.test.local]
# Remote host's sensor parameter description block always starts with "sensor-config:". # Remote host's sensor parameter description block always starts with "sensor-config:".
#
hostname = 192.168.254.252 hostname = 192.168.254.252
username = user username = user
userpass = pass userpass = pass
#
# To recognize options for polling a sensor, you must specify the type of sensor. # To recognize options for polling a sensor, you must specify the type of sensor.
# Supported types: # Supported types:
# ds18b20 # ds18b20
@ -78,19 +86,39 @@ nodename = 28-1a2b3c4d5e6f
[camera-config:camera.test.local] [camera-config:camera.test.local]
# Camera parameter description block always starts with "camera-config:". # Camera parameter description block always starts with "camera-config:".
#
hostname = 192.168.254.253 hostname = 192.168.254.253
username = user username = user
userpass = pass userpass = pass
#
# If a record directory on a remote host is used, a username and password must be specified. # If a record directory on a remote host is used, a username and password must be specified.
# Supported protocols: # Supported protocols:
# FTP. # FTP, SFTP, SMB.
records_root_path = ftp://192.168.254.254/Records/camera.test.local records_root_path = ftp://user:pass@192.168.254.254:21/Records/camera.test.local
records_root_user = user #
records_root_pass = pass # Separated parameters string has lower priority and parameters are overwritten by
# records_root_path = 'hosttype://username:password@hostname:hostport/some/path'
# if you use both.
#
#records_root_path = /Records/camera.test.local
#
#records_root_host = 192.168.254.254
#
# Optionality you can set custom connection port:
#records_root_port = 21
#
# You must set connection type (ftp is faster than sftp, sftp is faster than smb):
# ftp, sftp, smb.
#records_root_type = ftp
#
#records_root_user = user
#
#records_root_pass = pass
[camera-sequences:camera.test.local] [camera-sequences:camera.test.local]
# Camera sequence description block always starts with "camera-sequences:". # Camera sequence description block always starts with "camera-sequences:".
#
# Place only the sequence of PTZ-actions in this block! # Place only the sequence of PTZ-actions in this block!
# Variable name can be anything. Only 'downloadjpeg' is using this for filename prefix. # Variable name can be anything. Only 'downloadjpeg' is using this for filename prefix.
# Available actions: # Available actions:
@ -128,14 +156,48 @@ step999 = rebootcamera, -, -, -, -, -, -,
image_find_names = step071, image-01, image-02 image_find_names = step071, image-01, image-02
# If image root or destination video directories on a remote host is used, username and password must be specified. # If image root or destination video directories on a remote host is used, username and password must be specified.
# Supported protocols: # Supported protocols:
# FTP. # FTP, SFTP, SMB.
image_root_path = ftp://192.168.254.254/Records/camera.test.local image_root_path = ftp://user:pass@192.168.254.254/Records/camera.test.local
image_root_user = user #
image_root_pass = pass # Separated parameters string has lower priority and parameters are overwritten by
# image_root_path = 'hosttype://username:password@hostname:hostport/some/path'
# if you use both.
#
#image_root_path = /Records/camera.test.local
#
#image_root_host = 192.168.254.254
#
# Optionality you can set custom connection port:
#image_root_port = 21
#
# You must set connection type (ftp is faster than sftp, sftp is faster than smb):
# ftp, sftp, smb.
#image_root_type = ftp
#
#image_root_user = user
#
#image_root_pass = pass
video_dest_path = ftp://192.168.254.254/Downloads video_dest_path = ftp://user:pass@192.168.254.254/Downloads
video_dest_user = user #
video_dest_pass = pass # Separated parameters string has lower priority and parameters are overwritten by
# video_dest_path = 'hosttype://username:password@hostname:hostport/some/path'
# if you use both.
#
#video_dest_path = /Downloads
#
# Optionality you can set custom connection port:
#video_dest_host = 192.168.254.254
#
#video_dest_port = 21
#
# You must set connection type (ftp is faster than sftp, sftp is faster than smb):
# ftp, sftp, smb.
#video_dest_type = ftp
#
#video_dest_user = user
#
#video_dest_pass = pass
video_scale_x = 1920 video_scale_x = 1920
video_scale_y = 1080 video_scale_y = 1080
@ -144,20 +206,42 @@ video_framerate = 25
[publish-config:camera.test.local] [publish-config:camera.test.local]
# Publisher parameter description block always starts with "publish-config:". # Publisher parameter description block always starts with "publish-config:".
#
video_find_names = step071, image-01, image-02 video_find_names = step071, image-01, image-02
# If a video directory on a remote host is used, a username and password must be specified. # If a video directory on a remote host is used, a username and password must be specified.
# Supported protocols: # Supported protocols:
# FTP. # FTP, SFTP, SMB.
video_root_path = ftp://192.168.254.254/Downloads video_root_path = ftp://user:pass@192.168.254.254/Downloads
video_root_user = user #
video_root_pass = pass # Separated parameters string has lower priority and parameters are overwritten by
# video_root_path = 'hosttype://username:password@hostname:hostport/some/path'
# if you use both.
#
#video_dest_path = /Downloads
#
#video_dest_host = 192.168.254.254
#
# Optionality you can set custom connection port:
#video_dest_port = 21
#
# You must set connection type (ftp is faster than sftp, sftp is faster than smb):
# ftp, sftp, smb.
#video_dest_type = ftp
#
#video_dest_user = user
#
#video_dest_pass = pass
#
# Optionality you can enable or disable publishing by Wordpress:
# true - Wordpress enabled, false - Wordpress disbaled.
wp_enabled = true wp_enabled = true
wp_site_name = www.site.name wp_site_name = www.site.name
wp_user_name = user wp_user_name = user
wp_user_pass = pass wp_user_pass = pass
wp_update_page_id = 4848 wp_update_page_id = 4848
#
# Optionality you can enable or disable publishing by Telegram:
# true - Wordpress enabled, false - Telegram disbaled.
tg_enabled = true tg_enabled = true
tg_api_key = TELEGRAM_API_KEY tg_api_key = TELEGRAM_API_KEY
tg_chat_id = @blackhole tg_chat_id = @blackhole

File diff suppressed because it is too large Load Diff