5.3 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	utils
camsutil
Description: Creation of a request to the camera API based on the prepared template
Dependencies: Python 3 (tested version 3.9.5)
| PARAMETERS | DESCRIPTION | DEFAULT | 
|---|---|---|
| --host | hostname or ip address | REQUIRED | 
| --user | valid user | REQUIRED | 
| --password | valid password | REQUIRED | 
| --template | the name of an existing template | REQUIRED | 
| [-h] | print help and exit | |
| [--protocol] | http, https, etc. | http | 
| [--port] | port number | 80 | 
| [--channel] | ptz channel number | 101 | 
| [--vid] | video channel id | 1 | 
| [--x] | horizontal positioning: azimuth, pan | 0 | 
| [--y] | vertical positioning: elevation, tilt | 0 | 
| [--z] | zoom direction, absolute zoom | 0 | 
| [--speed] | positioning speed: from 1 to 7 | 1 | 
| [--time] | momentary duration, max 100000ms | 100000 | 
| [--text] | overlay text content | None | 
| [--enabled] | enabled (true) or disabled (false) overlay text | true | 
Example usage in terminal with Python:
python3 ./ptz.py --host HOST --user USER --password PASS --template Hikvision_GetCapabilities.html
Example usage in terminal with make the script executable:
chmod u+x ./ptz.py
ptz.py --host HOST --user USER --password PASS --template Hikvision_PtzPreset.html --vid 2 --speed 5
Example usage in Python:
from camsutil import ptz
data = ptz.API(host='HOST', user='USER', password='PASS', template='Hikvision_GetJPEG.html', x=1920, y=1080).call()
with open('img.jpg', 'wb') as output:
    output.write(data)
ffmpeger.py
Description: FFmpeg management from Python
Dependencies: Python 3 (tested version 3.9.5), installed or downloaded ffmpeg, procutil.py in the same directory
| PARAMETERS | DESCRIPTION | DEFAULT | 
|---|---|---|
| -s, --src | sources urls | REQUIRED | 
| [-h] | print help and exit | |
| [--preset] | 240p, 360p, 480p, 720p, 1080p, 1440p, 2160p | None | 
| [--fps] | frame per second encoding output | None | 
| [--dst] | destination url | None | 
| [--ffpath] | alternative path to bin | None | 
| [--watchdog] | detect ffmpeg freeze and terminate | |
| [--sec] | seconds to wait before the watchdog terminates | 15 | 
| [--mono] | detect ffmpeg running copy and terminate | 
Example usage in cron with Python:
* * * * * /usr/bin/python3 ~/ffmpeger.py -s rtsp://user:pass@host:554/Streaming/Channels/101 --dst rtmp://a.rtmp.youtube.com/live2/YOUKEY --mono --watchdog --sec 30 >> /dev/null 2>&1
Example usage in terminal with make the script executable:
chmod u+x ./ffmpeger.py
ffmpeger.py -s rtsp://user:pass@host:554/Streaming/Channels/101 --dst rtp://239.0.0.1:5554
Example usage in Python:
from ffmpeger import FFmpeg
FFmpeg.run(src='null, anull', preset='240p', fps=10)
procutil.py
Description: Find a running process from Python
Dependencies: Python 3 (tested version 3.9.5)
| PARAMETERS | DESCRIPTION | DEFAULT | 
|---|---|---|
| [-h] | print help and exit | |
| [--find] | find process pid, name or arguments | |
| [--exclude] | exclude process pid, name or arguments | None | 
| [--self] | find a clones of self | True | 
| [--kill] | kill the process with pid | 
Example usage in terminal with Python for find all running processes:
python3 ./procutil.py
Example usage in terminal with make the script executable for find all specified processes:
chmod u+x ./procutil.py
./procutil.py --find ssh --exclude sftp
Example usage in Python for find a clones of self:
from os import getpid
from sys import argv
from procutil import Proc
processes = Proc.search(' '.join(argv), str(getpid()))
if processes:
    for process in processes:
        print(process)
sendmail.py
Description: Sending email from Python
Dependencies: Python 3 (tested version 3.9.5)
| PARAMETERS | DESCRIPTION | DEFAULT | 
|---|---|---|
| -u, --user | smtp valid user | REQUIRED | 
| -p, --pass | smtp valid password | REQUIRED | 
| -d, --dest | destination addresses | REQUIRED | 
| [-h] | print help and exit | |
| [--smtp] | smtp hostname or ip address | smtp.gmail.com | 
| [--port] | smtp port number | 587 | 
| [--stls] | smtp required TLS | True | 
| [--from] | mail from alias | --user value | 
| [--subj] | mail subject | 'no subject' | 
| [--text] | mail body text | 'no text' | 
| [--type] | mail body type: plain, html | plain | 
| [--file] | mail attachment files | None | 
Example usage in terminal with Python:
python3 ./sendmail.py -u user@gmail.com -p pass -d addr1@gmail.com,addr2@gmail.com
Example usage in terminal with make the script executable:
chmod u+x ./sendmail.py
./sendmail.py -u user@gmail.com -p pass -d addr1@gmail.com,addr2@gmail.com
Example usage in Python:
from sendmail import Mail
msg = Mail(smtp_user='user@gmail.com', smtp_pass='pass', mail_dest='addr1@gmail.com,addr2@gmail.com')
log = msg.send()
print(log)