<commit_before># khvidcontrol

> Control video setup

## About

Project is created to enable video feed control in permanent installation.

Main video feed is provided with HD video camera model V600 and ohter cameras and media content from PC is mixed using Blackmagicdesing [ATEM Television Studio HD](https://www.blackmagicdesign.com/products/atemtelevisionstudiohd). V600 PTZ is controlled via RS485 using VISCA control protocol. Video mixer is controlled via ethernet using [Skaarhoj](http://skaarhoj.com) open sourced [Open Engineering software](https://github.com/kasperskaarhoj/SKAARHOJ-Open-Engineering).

This control software consists web server delivering UI and persisting desired camera positionings. Web server is build using Node.js framework [Feathers.js](https://feathersjs.com/) Hardware is controlled with python scripts utilising freely available libraries.

Target hardware is RaspberryPi.

## Anything else

TBD
<commit_msg>Add todo list in readme<commit_after># khvidcontrol

> Control video setup

## About

Project is created to enable video feed control in permanent installation.

Main video feed is provided with HD video camera model V600 and ohter cameras and media content from PC is mixed using Blackmagicdesing [ATEM Television Studio HD](https://www.blackmagicdesign.com/products/atemtelevisionstudiohd). V600 PTZ is controlled via RS485 using VISCA control protocol. Video mixer is controlled via ethernet using [Skaarhoj](http://skaarhoj.com) open sourced [Open Engineering software](https://github.com/kasperskaarhoj/SKAARHOJ-Open-Engineering).

This control software consists web server delivering UI and persisting desired camera positionings. Web server is build using Node.js framework [Feathers.js](https://feathersjs.com/) Hardware is controlled with python scripts utilising freely available libraries.

Target hardware is RaspberryPi.

## Anything else

TBD

To enable starting forever.js after boot command is needed to add 'root' user's crontab and run as node.js user. Node and forever commands needs to be symlinked so 'root' user is able run those.

## Development todo

- Replace Skaarjhoj code and wrapper with node package (e.g. [node-appletest-atem](https://github.com/applest/node-applest-atem) or similar)
- Add fade to black to hide camera movement when changing between positions on same camera
- Refactor arrow button implementation as bootstrap 3 solution is not good
- Create functionality to edit camera positions and order of buttons
- Build settings UI for adding information of mixer and camera(s)
- Refactor main control UI to follow proper practises so that data is not stored in frontend and build UI using frontend framework (react/vue)
- Create user profiles with desired button configuration and basic settings

{'fraction_non_alphanumeric': 0.05641394178943586, 'fraction_numerical': 0.006827164929931728, 'mean_word_length': 5.105263157894737, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 7, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1905452', 'n_tokens_mistral': 724, 'n_tokens_neox': 692, 'n_words': 341}