110 lines
3.7 KiB
Markdown
110 lines
3.7 KiB
Markdown
# utils
|
|
|
|
* [ffmpeger.py](https://git.hmp.today/pavel.muhortov/utils#ffmpeger-py)
|
|
* [procutil.py](https://git.hmp.today/pavel.muhortov/utils#procutil-py)
|
|
* [sendmail.py](https://git.hmp.today/pavel.muhortov/utils#sendmail-py)
|
|
____
|
|
## ffmpeger.py
|
|
**Description:** FFmpeg management from Python
|
|
**Dependencies:** Python 3 (tested version 3.9.5), installed or downloaded ffmpeg, [procutil.py](https://git.hmp.today/pavel.muhortov/utils#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:
|
|
```shell
|
|
* * * * * /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:
|
|
```shell
|
|
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:
|
|
```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:
|
|
```shell
|
|
python3 ./procutil.py
|
|
```
|
|
Example usage in terminal with make the script executable for find all specified processes:
|
|
```shell
|
|
chmod u+x ./procutil.py
|
|
./procutil.py --find ssh --exclude sftp
|
|
```
|
|
Example usage in Python for find a clones of self:
|
|
```Python
|
|
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:
|
|
```shell
|
|
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:
|
|
```shell
|
|
chmod u+x ./sendmail.py
|
|
./sendmail.py -u user@gmail.com -p pass -d addr1@gmail.com,addr2@gmail.com
|
|
```
|
|
Example usage in Python:
|
|
```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)
|
|
```
|
|
|
|
____
|