Skip to main content

A flexible stream routing and filtering system with support for scheduled tasks and event reactions

Project description

Dialogstream logo

DialogStream Python Package

This repository contains the Python package for DialogStream, a powerful and flexible conversational AI platform.

Installation

To install the DialogStream Python package, you can use pip:

pip install dialogstream

Quick start

python -m venv .venv && source .venv/bin/activate && pip install dialogstream

JSON

python router.py -s "config/stream.json" -p "config/process.json"

Video stream testing

ffplay rtsp://192.168.1.2:554/Preview_01_sub
ffmpeg -i rtsp://192.168.1.2:554/Preview_01_sub -c copy -f segment -segment_time 6 -segment_format mp4 -strftime 1 -reset_timestamps 1 "./recordings/%Y%m%d_%H.mp4" -v debug

Usage

Here's a basic example of how to use the DialogStream package:

image

Flow configuration (flows.json)

The config/flows.json file defines video stream flows:

{
  "flows": [
    {
      "name": "RTSP z detekcją ruchu i zapisaniem obrazów",
      "steps": [
        "rtsp://test1234:test1234@192.168.188.225:554/Preview_01_sub",
        "file:///motion"
      ]
    },
    {
      "name": "Timelapse z obrazów",
      "steps": [
        "file:///motion",
        "file:///timelapses"
      ]
    },
    {
      "name": "Timelapse z obrazów co 1 godzine",
      "steps": [
        "file:///motion",
        "schedule://0 */1 * * *",
        "file:///timelapses"
      ]
    },
    {
      "name": "Timelapse z obrazów co 1 godzine",
      "steps": [
        "file:///motion",
        "schedule://0 */1 * * *",
        "file:///timelapses"
      ]
    },
    {
      "name": "Email z powiadamieniem, gdy pojawi się nowy obiekt",
      "steps": [
        "subscribe://object_detected",
        "email:///info@softreck.dev"
      ]
    },
    {
      "name": "Wysyłanie powiadomienia, gdy pojawi się nowy obiekt",
      "steps": [
        "file:///motion",
        "process://detect_object_on_picture",
        "publish://object_detected"
      ]
    }
  ]
}

Each flow contains:

  • name: A descriptive name for the flow
  • steps: A list of processing steps, where each step is a URL in the format:
    • rtsp:// - RTSP source
    • process:// - Processing step with parameters
    • file:// - Save to file (supports strftime format)

Process configuration (process.json)

The config/process.json file defines processing rules:

[
  {
    "filter": [
      "rtsp",
      "process://motion",
      "file"
    ],
    "run": [
      "shell://ffmpeg -i $1 -c copy -f segment -segment_time 6 -segment_format mp4 -strftime 1 -reset_timestamps 1 $3"
    ]
  },
  {
    "filter": [
      "rtsp",
      "file"
    ],
    "run": [
      "shell://ffmpeg -i $1 -c copy -f segment -segment_time 6 -segment_format mp4 -strftime 1 -reset_timestamps 1 $2"
    ]
  }
]

Each rule contains:

  • filter: A list of URL patterns to match
  • run: A list of shell commands to execute, where:
    • $1, $2, $3... - refer to the corresponding URLs from the filter section
    • Commands are executed in the order defined in the list

For more detailed information, please refer to the official documentation.

Contributing

Contributions are welcome! If you find any bugs or have suggestions for improvements, please open an issue or submit a pull request on GitHub.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dialogstream-1.4.8.tar.gz (56.1 kB view details)

Uploaded Source

Built Distribution

dialogstream-1.4.8-py3-none-any.whl (18.3 kB view details)

Uploaded Python 3

File details

Details for the file dialogstream-1.4.8.tar.gz.

File metadata

  • Download URL: dialogstream-1.4.8.tar.gz
  • Upload date:
  • Size: 56.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.3

File hashes

Hashes for dialogstream-1.4.8.tar.gz
Algorithm Hash digest
SHA256 cec4eb76387e43d00ee2d216432a03a8e5937ff5b5810d5154e31077e8229965
MD5 7e1677a5d311936a25be0518704b7288
BLAKE2b-256 63a8f7aac3ab1da4822970871f3bc995daa01147511176638313f7cd07ee21ed

See more details on using hashes here.

File details

Details for the file dialogstream-1.4.8-py3-none-any.whl.

File metadata

File hashes

Hashes for dialogstream-1.4.8-py3-none-any.whl
Algorithm Hash digest
SHA256 e37f59b8f36ceecf4444fcfbcb0bcaffcdc9b249e6ca35f84bf57cd2d77c3206
MD5 75df133d743ddc9552c88cb501b3ac08
BLAKE2b-256 c97e797da15def18b8c49a715a77b8e41a6727a49cb388c40fd549d819711525

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page