2021-03-19 22:53:14 +01:00
2019-01-06 19:49:56 +01:00
# With Docker
2019-07-08 15:04:38 +02:00
If you are using [Docker ](https://www.docker.com/ ), you can compile Hyperion inside a docker container. This keeps your system clean and with a simple script it's easy to use. Supported is also cross compiling for Raspberry Pi (Debian Stretch or higher). To compile Hyperion just execute one of the following commands.
2019-01-06 19:49:56 +01:00
2019-07-20 14:59:31 +02:00
The compiled binaries and packages will be available at the deploy folder next to the script.< br / >
2020-09-06 13:43:44 +02:00
Note: call the script with `./docker-compile.sh -h` for more options.
2019-07-08 15:04:38 +02:00
2020-09-06 13:43:44 +02:00
## Native compilation on Raspberry Pi for:
2019-07-08 15:04:38 +02:00
2019-07-19 16:51:42 +02:00
**Raspbian Stretch**
2021-03-19 22:53:14 +01:00
```console
2022-03-15 20:41:28 +01:00
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i rpi-raspbian -t stretch
2019-07-19 16:51:42 +02:00
```
Media Foundation/V4L2 grabber ... (#1119)
* - New Media Foundation grabber
- JsonAPI available grabber fix
- commented json config removed
* Added libjpeg-turbo to dependencies
* Fix OSX build
Removed Azure Pipelines from build scripts
* Remove Platform from Dashboard
* Correct Grabber Namings
* Grabber UI improvements, generic JSONEditor Selection Update
* Active grabber fix
* Stop Framebuffer grabber on failure
* - Image format NV12 and I420 added
- Flip mode
- Scaling factor for MJPEG
- VSCode (compile before run)
- CI (push) dependency libjpeg-turbo added
* Refactor MediaFoundation (Part 1)
* Remove QDebug output
* Added image flipping ability to MF Grabber
* fix issue 1160
* -Reload MF Grabber only once per WebUI update
- Cleanup
* Improvements
* - Set 'Software Frame Decimation' begin to 0
- Removed grabber specific device name from Log
- Keep pixel format when switching resolution
- Display 'Flip mode' correct in Log
- BGR24 images always flipped
* Refactor MediaFoundation (Part 2)
* Refactor V4L2 grabber (part 1) (#62)
* Media Foundation grabber adapted to V4L2 change
* Enable Media Foundation grabber on windows
* Have fps as int, fix height typo
* Added video standards to JsonAPI output
* Error handling in source reader improved
* Fix "Frame to small" error
* Discovery VideoSources and Dynamically Update Editor
* Hide all element when no video grabber discovered, upate naming
* Do not show unsupported grabbers
* Copy Log to Clipboard
* Update Grabber schema and Defaults
* Update access levels and validate crop ranges
* Height and width in Qt grabber corrected
* Correct formatting
* Untabify
* Global component states across instances
* Components divided on the dashboard
* refactor
* Fix Merge-issues
* Database migration aligning with updated grabber model
* Align Grabber.js with new utility functions
* Allow editor-validation for enum-lists
* Handle "Show Explainations scenario" correctly
* Grabber - Ensure save is only possible on valid content
* Dashboard update + fix GlobalSignal connection
* Ensure default database is populated with current release
* Correct grabber4L2 access level
* Display Signal detection area in preview
* Write Hyperion version into default config on compiling.
* Create defaultconfig.json dynamically
* WebUI changes
* Correct grabber config look-ups
* Refactor i18n language loading
* Fix en.json
* Split global capture from instance capture config
* Update grabber default values
* Standalone grabber: Add --debug switch
* Enhance showInputOptionsForKey for multiple keys
* Add grabber instance link to system grabber config
* Only show signal detection area, if grabber is enabled
* Always show Active element on grabber page
* Remote control - Only display gabber status, if global grabber is enabled
* WebUI optimization (thx to @mkcologne)
Start Grabber only when global settings are enabled
Fixed an issue in the WebUI preview
* V4L2/MF changes
* Jsoneditor, Correct translation for default values
* Refactor LED-Device handling in UI and make element naming consistent
* MF Discovery extended
* Fix LGTM finding
* Support Grabber Bri, Hue, Sat and Con in UI, plus their defaults
* Concider Access level for item filtering
* Concider Access level for item filtering
* Revert "Concider Access level for item filtering"
This reverts commit 5b0ce3c0f2de67e0c43788190cfff45614706129.
* Disable fpsSoftwareDecimation for framegrabber, as not supported yet
* JSON-Editor- Add updated schema for validation on dynamic elements
* added V4L2 color IDs
* LGTM findings fix
* destroy SR callback only on exit
* Grabber.js - Hide elements not supported by platform
* Fixed freezing start effect
* Grabber UI - Hardware controls - Show current values and allow to reset to defaults
* Grabber - Discovery - Add current values to properties
* Small things
* Clean-up Effects and have ENDLESS consistently defined
* Fix on/off/on priority during startup, by initializing _prevVisComp in line with background priority
* Add missing translation mappings
* DirectX Grabber reactivated/ QT Grabber size decimation fixed
* typo in push-master workflow
* Use PreciseTimer for Grabber to ensure stable FPS timing
* Set default Screencapture rate consistently
* Fix libjpeg-turbo download
* Remove Zero character from file
* docker-compile Add PLATFORM parameter, only copy output file after successful compile
* Framebuffer, Dispmanx, OSX, AML Grabber discovery, various clean-up and consistencies across grabbers
* Fix merge problem - on docker-compile Add PLATFORM parameter, only copy output file after successful compile
* Fix definition
* OSXFRameGrabber - Revert cast
* Clean-ups nach Feedback
* Disable certain libraries when building armlogic via standard stretch image as developer
* Add CEC availability to ServerInfo to have it platform independent
* Grabber UI - Fix problem that crop values are not populated when refining editor rage
* Preserve value when updating json-editor range
* LEDVisualisation - Clear image when source changes
* Fix - Preserve value when updating json-editor range
* LEDVisualisation - Clear image when no component is active
* Allow to have password handled by Password-Manager (#1263)
* Update default signal detection area to green assuming rainbow grabber
* LED Visualisation - Handle empty priority update
* Fix yuv420 in v4l2 grabber
* V4L2-Grabber discovery - Only report grabbers with valid video input information
* Grabber - Update static variables to have them working in release build
* LED Visualisation - ClearImage when no priorities
* LED Visualisation - Fix Logo resizing issue
* LED Visualisation - Have nearly black background and negative logo
Co-authored-by: LordGrey <lordgrey.emmel@gmail.com>
Co-authored-by: LordGrey <48840279+Lord-Grey@users.noreply.github.com>
2021-07-14 20:48:33 +02:00
**Raspbian Buster/Raspberry Pi OS**
2021-03-19 22:53:14 +01:00
```console
2020-09-06 13:43:44 +02:00
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i rpi-raspbian -t buster
2019-07-08 15:04:38 +02:00
```
2021-11-17 20:35:28 +01:00
**Raspberry Pi OS Bullseye**
```console
2022-11-27 17:21:59 +01:00
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i rpi-raspbian -t bullseye
```
**Raspberry Pi OS Bookworm**
```console
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i rpi-raspbian -t bookworm
2021-11-17 20:35:28 +01:00
```
2020-09-06 13:43:44 +02:00
## Cross compilation on x86_64 for:
2019-07-08 15:04:38 +02:00
2020-09-06 13:43:44 +02:00
**x86_64 (Debian Stretch):**
2021-03-19 22:53:14 +01:00
```console
2022-03-15 20:41:28 +01:00
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i x86_64 -t stretch
2019-01-06 19:49:56 +01:00
```
2020-09-06 13:43:44 +02:00
**x86_64 (Debian Buster):**
2021-03-19 22:53:14 +01:00
```console
2020-09-06 13:43:44 +02:00
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i x86_64 -t buster
2019-02-17 18:56:04 +01:00
```
2021-11-17 20:35:28 +01:00
**x86_64 (Debian Bullseye):**
```console
2022-11-27 17:21:59 +01:00
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i x86_64 -t bullseye
```
**x86_64 (Debian Bookworm):**
```console
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i x86_64 -t bookworm
2021-11-17 20:35:28 +01:00
```
2020-09-06 13:43:44 +02:00
**Raspberry Pi v1 & ZERO (Debian Stretch)**
2021-03-19 22:53:14 +01:00
```console
2022-03-15 20:41:28 +01:00
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i armv6l -t stretch
2019-02-17 18:56:04 +01:00
```
2020-09-06 13:43:44 +02:00
**Raspberry Pi v1 & ZERO (Debian Buster)**
2021-03-19 22:53:14 +01:00
```console
2020-09-06 13:43:44 +02:00
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i armv6l -t buster
2019-01-06 19:49:56 +01:00
```
2021-11-17 20:35:28 +01:00
**Raspberry Pi v1 & ZERO (Debian Bullseye)**
```console
2022-11-27 17:21:59 +01:00
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i armv6l -t bullseye
```
**Raspberry Pi v1 & ZERO (Debian Bookworm)**
```console
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i armv6l -t bookworm
2021-11-17 20:35:28 +01:00
```
2020-09-06 13:43:44 +02:00
**Raspberry Pi 2/3/4 (Debian Stretch)**
2021-03-19 22:53:14 +01:00
```console
2022-03-15 20:41:28 +01:00
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i armv7l -t stretch
2020-08-11 17:53:09 +02:00
```
2020-09-06 13:43:44 +02:00
**Raspberry Pi 2/3/4 (Debian Buster)**
2021-03-19 22:53:14 +01:00
```console
2020-09-06 13:43:44 +02:00
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i armv7l -t buster
2020-08-11 17:53:09 +02:00
```
2021-11-17 20:35:28 +01:00
**Raspberry Pi 2/3/4 (Debian Bullseye)**
```console
2022-11-27 17:21:59 +01:00
wget -qN https://raw.github.com/hyperion-project/hyperion.ng/master/bin/scripts/docker-compile.sh & & chmod +x *.sh & & ./docker-compile.sh -i armv7l -t bullseye
2021-11-17 20:35:28 +01:00
```
2021-03-19 22:53:14 +01:00
## Cross compilation on x86_64 for developers
Using additional options you can cross compile locally
-l: use a local hyperion source code directory rather than cloning from GitHub
-c: do incremental compiles, Note: you need to keep the image and tag stable
2019-01-06 19:49:56 +01:00
2021-11-17 20:35:28 +01:00
**Compile code in $HYPERION_HOME incrementally for Raspberry Pi 2/3/4 (Debian Bullseye)**
2021-03-19 22:53:14 +01:00
```console
cd $HYPERION_HOME
2021-11-17 20:35:28 +01:00
./bin/scripts/docker-compile.sh -l -c -i armv7l -t bullseye
2021-03-19 22:53:14 +01:00
```
2019-01-06 19:49:56 +01:00
# The usual way
2016-08-04 22:32:44 +02:00
2016-12-13 19:09:52 +01:00
## Debian/Ubuntu/Win10LinuxSubsystem
2016-12-02 22:47:09 +01:00
2022-05-31 12:29:49 +02:00
**For Linux/Ubuntu(< = 21.10) - Qt5 based**
```console
sudo apt-get update
2023-04-13 11:21:12 +02:00
sudo apt-get install git cmake build-essential qtbase5-dev libqt5serialport5-dev libqt5sql5-sqlite libqt5svg5-dev libqt5x11extras5-dev libusb-1.0-0-dev python3-dev libasound2-dev libturbojpeg0-dev libjpeg-dev libssl-dev libftdi1-dev
2022-05-31 12:29:49 +02:00
```
**Ubuntu (22.04+) - Qt6 based**
2021-03-19 22:53:14 +01:00
```console
2016-08-04 22:32:44 +02:00
sudo apt-get update
2023-04-13 11:21:12 +02:00
sudo apt-get install git cmake build-essential qt6-base-dev libqt6serialport6-dev libvulkan-dev libgl1-mesa-dev libusb-1.0-0-dev python3-dev libasound2-dev libturbojpeg0-dev libjpeg-dev libssl-dev pkg-config libftdi1-dev
2021-11-16 18:12:56 +01:00
```
2022-05-31 12:29:49 +02:00
**For Linux X11/XCB grabber support**
2021-11-16 18:12:56 +01:00
```console
2022-01-07 14:47:51 +01:00
sudo apt-get install libxrandr-dev libxrender-dev libxcb-image0-dev libxcb-util0-dev libxcb-shm0-dev libxcb-render0-dev libxcb-randr0-dev
2021-11-16 18:12:56 +01:00
```
**For Linux CEC support**
```console
sudo apt-get install libcec-dev libp8-platform-dev libudev-dev
2016-08-04 22:32:44 +02:00
```
2017-09-02 22:26:22 +02:00
**on RPI you need the videocore IV headers**
2016-08-04 22:32:44 +02:00
2021-03-19 22:53:14 +01:00
```console
2017-09-02 22:26:22 +02:00
sudo apt-get install libraspberrypi-dev
2016-08-04 22:32:44 +02:00
```
2018-12-28 18:12:45 +01:00
2019-04-02 01:40:35 +02:00
**OSMC on Raspberry Pi**
2021-03-19 22:53:14 +01:00
```console
2019-03-28 17:45:48 +01:00
sudo apt-get install rbp-userland-dev-osmc
```
2017-09-02 22:26:22 +02:00
2022-05-31 12:29:49 +02:00
**Additionally for QT6 when QT6 installed separately on Ubuntu < 22.04 * *
2021-11-16 18:12:56 +01:00
```console
sudo apt-get install postgresql unixodbc libxkbcommon-dev
```
2017-09-02 22:26:22 +02:00
**ATTENTION Win10LinuxSubsystem** we do not (/we can't) support using hyperion in linux subsystem of MS Windows 10, albeit some users tested it with success. Keep in mind to disable
all linux specific led and grabber hardware via cmake. Because we use QT as framework in hyperion, serialport leds and network driven devices could work.
2016-12-02 22:47:09 +01:00
## Arch
See [AUR ](https://aur.archlinux.org/packages/?O=0&SeB=nd&K=hyperion&outdated=&SB=n&SO=a&PP=50&do_Search=Go ) for PKGBUILDs on arch. If the PKGBUILD does not work ask questions there please.
2020-12-23 23:44:46 +01:00
## Fedora
The following dependencies are needed to build hyperion.ng on fedora.
2021-03-19 22:53:14 +01:00
```console
2020-12-23 23:44:46 +01:00
sudo dnf -y groupinstall "Development Tools"
2023-04-13 11:21:12 +02:00
sudo dnf install python3-devel qt-devel qt5-qtbase-devel qt5-qtserialport-devel xrandr xcb-util-image-devel qt5-qtx11extras-devel alsa-lib-devel turbojpeg-devel libusb-devel xcb-util-devel dbus-devel openssl-devel fedora-packager rpmdevtools gcc libcec-devel libftdi1-dev
2020-12-23 23:44:46 +01:00
```
After installing the dependencies, you can continue with the compile instructions later on this page (the more detailed way..).
2016-12-02 22:47:09 +01:00
## OSX
To install on OS X you either need Homebrew or Macport but Homebrew is the recommended way to install the packages. To use Homebrew XCode is required as well, use `brew doctor` to check your install.
First you need to install the dependencies:
2021-03-19 22:53:14 +01:00
```console
2023-04-13 11:21:12 +02:00
brew install qt5 python3 cmake libusb doxygen libftdi
2016-12-02 22:47:09 +01:00
```
2021-11-16 18:12:56 +01:00
## Windows
2021-01-14 21:05:47 +01:00
We assume a 64bit Windows 10. Install the following;
2020-05-12 19:51:19 +02:00
- [Git ](https://git-scm.com/downloads ) (Check: Add to PATH)
Media Foundation/V4L2 grabber ... (#1119)
* - New Media Foundation grabber
- JsonAPI available grabber fix
- commented json config removed
* Added libjpeg-turbo to dependencies
* Fix OSX build
Removed Azure Pipelines from build scripts
* Remove Platform from Dashboard
* Correct Grabber Namings
* Grabber UI improvements, generic JSONEditor Selection Update
* Active grabber fix
* Stop Framebuffer grabber on failure
* - Image format NV12 and I420 added
- Flip mode
- Scaling factor for MJPEG
- VSCode (compile before run)
- CI (push) dependency libjpeg-turbo added
* Refactor MediaFoundation (Part 1)
* Remove QDebug output
* Added image flipping ability to MF Grabber
* fix issue 1160
* -Reload MF Grabber only once per WebUI update
- Cleanup
* Improvements
* - Set 'Software Frame Decimation' begin to 0
- Removed grabber specific device name from Log
- Keep pixel format when switching resolution
- Display 'Flip mode' correct in Log
- BGR24 images always flipped
* Refactor MediaFoundation (Part 2)
* Refactor V4L2 grabber (part 1) (#62)
* Media Foundation grabber adapted to V4L2 change
* Enable Media Foundation grabber on windows
* Have fps as int, fix height typo
* Added video standards to JsonAPI output
* Error handling in source reader improved
* Fix "Frame to small" error
* Discovery VideoSources and Dynamically Update Editor
* Hide all element when no video grabber discovered, upate naming
* Do not show unsupported grabbers
* Copy Log to Clipboard
* Update Grabber schema and Defaults
* Update access levels and validate crop ranges
* Height and width in Qt grabber corrected
* Correct formatting
* Untabify
* Global component states across instances
* Components divided on the dashboard
* refactor
* Fix Merge-issues
* Database migration aligning with updated grabber model
* Align Grabber.js with new utility functions
* Allow editor-validation for enum-lists
* Handle "Show Explainations scenario" correctly
* Grabber - Ensure save is only possible on valid content
* Dashboard update + fix GlobalSignal connection
* Ensure default database is populated with current release
* Correct grabber4L2 access level
* Display Signal detection area in preview
* Write Hyperion version into default config on compiling.
* Create defaultconfig.json dynamically
* WebUI changes
* Correct grabber config look-ups
* Refactor i18n language loading
* Fix en.json
* Split global capture from instance capture config
* Update grabber default values
* Standalone grabber: Add --debug switch
* Enhance showInputOptionsForKey for multiple keys
* Add grabber instance link to system grabber config
* Only show signal detection area, if grabber is enabled
* Always show Active element on grabber page
* Remote control - Only display gabber status, if global grabber is enabled
* WebUI optimization (thx to @mkcologne)
Start Grabber only when global settings are enabled
Fixed an issue in the WebUI preview
* V4L2/MF changes
* Jsoneditor, Correct translation for default values
* Refactor LED-Device handling in UI and make element naming consistent
* MF Discovery extended
* Fix LGTM finding
* Support Grabber Bri, Hue, Sat and Con in UI, plus their defaults
* Concider Access level for item filtering
* Concider Access level for item filtering
* Revert "Concider Access level for item filtering"
This reverts commit 5b0ce3c0f2de67e0c43788190cfff45614706129.
* Disable fpsSoftwareDecimation for framegrabber, as not supported yet
* JSON-Editor- Add updated schema for validation on dynamic elements
* added V4L2 color IDs
* LGTM findings fix
* destroy SR callback only on exit
* Grabber.js - Hide elements not supported by platform
* Fixed freezing start effect
* Grabber UI - Hardware controls - Show current values and allow to reset to defaults
* Grabber - Discovery - Add current values to properties
* Small things
* Clean-up Effects and have ENDLESS consistently defined
* Fix on/off/on priority during startup, by initializing _prevVisComp in line with background priority
* Add missing translation mappings
* DirectX Grabber reactivated/ QT Grabber size decimation fixed
* typo in push-master workflow
* Use PreciseTimer for Grabber to ensure stable FPS timing
* Set default Screencapture rate consistently
* Fix libjpeg-turbo download
* Remove Zero character from file
* docker-compile Add PLATFORM parameter, only copy output file after successful compile
* Framebuffer, Dispmanx, OSX, AML Grabber discovery, various clean-up and consistencies across grabbers
* Fix merge problem - on docker-compile Add PLATFORM parameter, only copy output file after successful compile
* Fix definition
* OSXFRameGrabber - Revert cast
* Clean-ups nach Feedback
* Disable certain libraries when building armlogic via standard stretch image as developer
* Add CEC availability to ServerInfo to have it platform independent
* Grabber UI - Fix problem that crop values are not populated when refining editor rage
* Preserve value when updating json-editor range
* LEDVisualisation - Clear image when source changes
* Fix - Preserve value when updating json-editor range
* LEDVisualisation - Clear image when no component is active
* Allow to have password handled by Password-Manager (#1263)
* Update default signal detection area to green assuming rainbow grabber
* LED Visualisation - Handle empty priority update
* Fix yuv420 in v4l2 grabber
* V4L2-Grabber discovery - Only report grabbers with valid video input information
* Grabber - Update static variables to have them working in release build
* LED Visualisation - ClearImage when no priorities
* LED Visualisation - Fix Logo resizing issue
* LED Visualisation - Have nearly black background and negative logo
Co-authored-by: LordGrey <lordgrey.emmel@gmail.com>
Co-authored-by: LordGrey <48840279+Lord-Grey@users.noreply.github.com>
2021-07-14 20:48:33 +02:00
- [CMake (Windows win64-x64 installer) ](https://cmake.org/download/ ) (Check: Add to PATH)
2022-05-22 08:01:49 +02:00
- [Visual Studio 2022 Community Edition ](https://visualstudio.microsoft.com/downloads/#visual-studio-community-2022 )
- Select 'Desktop development with C++'
- On the right, just select `MSVC v143 VS 2022 C++ x64/x86-Buildtools` and latest `Windows 10 SDK` . Everything else is not needed.
Media Foundation/V4L2 grabber ... (#1119)
* - New Media Foundation grabber
- JsonAPI available grabber fix
- commented json config removed
* Added libjpeg-turbo to dependencies
* Fix OSX build
Removed Azure Pipelines from build scripts
* Remove Platform from Dashboard
* Correct Grabber Namings
* Grabber UI improvements, generic JSONEditor Selection Update
* Active grabber fix
* Stop Framebuffer grabber on failure
* - Image format NV12 and I420 added
- Flip mode
- Scaling factor for MJPEG
- VSCode (compile before run)
- CI (push) dependency libjpeg-turbo added
* Refactor MediaFoundation (Part 1)
* Remove QDebug output
* Added image flipping ability to MF Grabber
* fix issue 1160
* -Reload MF Grabber only once per WebUI update
- Cleanup
* Improvements
* - Set 'Software Frame Decimation' begin to 0
- Removed grabber specific device name from Log
- Keep pixel format when switching resolution
- Display 'Flip mode' correct in Log
- BGR24 images always flipped
* Refactor MediaFoundation (Part 2)
* Refactor V4L2 grabber (part 1) (#62)
* Media Foundation grabber adapted to V4L2 change
* Enable Media Foundation grabber on windows
* Have fps as int, fix height typo
* Added video standards to JsonAPI output
* Error handling in source reader improved
* Fix "Frame to small" error
* Discovery VideoSources and Dynamically Update Editor
* Hide all element when no video grabber discovered, upate naming
* Do not show unsupported grabbers
* Copy Log to Clipboard
* Update Grabber schema and Defaults
* Update access levels and validate crop ranges
* Height and width in Qt grabber corrected
* Correct formatting
* Untabify
* Global component states across instances
* Components divided on the dashboard
* refactor
* Fix Merge-issues
* Database migration aligning with updated grabber model
* Align Grabber.js with new utility functions
* Allow editor-validation for enum-lists
* Handle "Show Explainations scenario" correctly
* Grabber - Ensure save is only possible on valid content
* Dashboard update + fix GlobalSignal connection
* Ensure default database is populated with current release
* Correct grabber4L2 access level
* Display Signal detection area in preview
* Write Hyperion version into default config on compiling.
* Create defaultconfig.json dynamically
* WebUI changes
* Correct grabber config look-ups
* Refactor i18n language loading
* Fix en.json
* Split global capture from instance capture config
* Update grabber default values
* Standalone grabber: Add --debug switch
* Enhance showInputOptionsForKey for multiple keys
* Add grabber instance link to system grabber config
* Only show signal detection area, if grabber is enabled
* Always show Active element on grabber page
* Remote control - Only display gabber status, if global grabber is enabled
* WebUI optimization (thx to @mkcologne)
Start Grabber only when global settings are enabled
Fixed an issue in the WebUI preview
* V4L2/MF changes
* Jsoneditor, Correct translation for default values
* Refactor LED-Device handling in UI and make element naming consistent
* MF Discovery extended
* Fix LGTM finding
* Support Grabber Bri, Hue, Sat and Con in UI, plus their defaults
* Concider Access level for item filtering
* Concider Access level for item filtering
* Revert "Concider Access level for item filtering"
This reverts commit 5b0ce3c0f2de67e0c43788190cfff45614706129.
* Disable fpsSoftwareDecimation for framegrabber, as not supported yet
* JSON-Editor- Add updated schema for validation on dynamic elements
* added V4L2 color IDs
* LGTM findings fix
* destroy SR callback only on exit
* Grabber.js - Hide elements not supported by platform
* Fixed freezing start effect
* Grabber UI - Hardware controls - Show current values and allow to reset to defaults
* Grabber - Discovery - Add current values to properties
* Small things
* Clean-up Effects and have ENDLESS consistently defined
* Fix on/off/on priority during startup, by initializing _prevVisComp in line with background priority
* Add missing translation mappings
* DirectX Grabber reactivated/ QT Grabber size decimation fixed
* typo in push-master workflow
* Use PreciseTimer for Grabber to ensure stable FPS timing
* Set default Screencapture rate consistently
* Fix libjpeg-turbo download
* Remove Zero character from file
* docker-compile Add PLATFORM parameter, only copy output file after successful compile
* Framebuffer, Dispmanx, OSX, AML Grabber discovery, various clean-up and consistencies across grabbers
* Fix merge problem - on docker-compile Add PLATFORM parameter, only copy output file after successful compile
* Fix definition
* OSXFRameGrabber - Revert cast
* Clean-ups nach Feedback
* Disable certain libraries when building armlogic via standard stretch image as developer
* Add CEC availability to ServerInfo to have it platform independent
* Grabber UI - Fix problem that crop values are not populated when refining editor rage
* Preserve value when updating json-editor range
* LEDVisualisation - Clear image when source changes
* Fix - Preserve value when updating json-editor range
* LEDVisualisation - Clear image when no component is active
* Allow to have password handled by Password-Manager (#1263)
* Update default signal detection area to green assuming rainbow grabber
* LED Visualisation - Handle empty priority update
* Fix yuv420 in v4l2 grabber
* V4L2-Grabber discovery - Only report grabbers with valid video input information
* Grabber - Update static variables to have them working in release build
* LED Visualisation - ClearImage when no priorities
* LED Visualisation - Fix Logo resizing issue
* LED Visualisation - Have nearly black background and negative logo
Co-authored-by: LordGrey <lordgrey.emmel@gmail.com>
Co-authored-by: LordGrey <48840279+Lord-Grey@users.noreply.github.com>
2021-07-14 20:48:33 +02:00
- [Win64 OpenSSL v1.1.1k ](https://slproweb.com/products/Win32OpenSSL.html ) ([direct link](https://slproweb.com/download/Win64OpenSSL-1_1_1k.exe))
2020-10-23 21:44:36 +02:00
- [Python 3 (Windows x86-64 executable installer) ](https://www.python.org/downloads/windows/ ) (Check: Add to PATH and Debug Symbols)
- Open a console window and execute `pip install aqtinstall` .
2022-05-22 08:01:49 +02:00
- Now we can download Qt to _C:\Qt_ `mkdir c:\Qt && aqt install -O c:\Qt 5.15.2 windows desktop win64_msvc2019_64`
2021-11-16 18:12:56 +01:00
- QT6.2 requires the [Vulkan SDK ](https://vulkan.lunarg.com/sdk/home ) to be installed
Media Foundation/V4L2 grabber ... (#1119)
* - New Media Foundation grabber
- JsonAPI available grabber fix
- commented json config removed
* Added libjpeg-turbo to dependencies
* Fix OSX build
Removed Azure Pipelines from build scripts
* Remove Platform from Dashboard
* Correct Grabber Namings
* Grabber UI improvements, generic JSONEditor Selection Update
* Active grabber fix
* Stop Framebuffer grabber on failure
* - Image format NV12 and I420 added
- Flip mode
- Scaling factor for MJPEG
- VSCode (compile before run)
- CI (push) dependency libjpeg-turbo added
* Refactor MediaFoundation (Part 1)
* Remove QDebug output
* Added image flipping ability to MF Grabber
* fix issue 1160
* -Reload MF Grabber only once per WebUI update
- Cleanup
* Improvements
* - Set 'Software Frame Decimation' begin to 0
- Removed grabber specific device name from Log
- Keep pixel format when switching resolution
- Display 'Flip mode' correct in Log
- BGR24 images always flipped
* Refactor MediaFoundation (Part 2)
* Refactor V4L2 grabber (part 1) (#62)
* Media Foundation grabber adapted to V4L2 change
* Enable Media Foundation grabber on windows
* Have fps as int, fix height typo
* Added video standards to JsonAPI output
* Error handling in source reader improved
* Fix "Frame to small" error
* Discovery VideoSources and Dynamically Update Editor
* Hide all element when no video grabber discovered, upate naming
* Do not show unsupported grabbers
* Copy Log to Clipboard
* Update Grabber schema and Defaults
* Update access levels and validate crop ranges
* Height and width in Qt grabber corrected
* Correct formatting
* Untabify
* Global component states across instances
* Components divided on the dashboard
* refactor
* Fix Merge-issues
* Database migration aligning with updated grabber model
* Align Grabber.js with new utility functions
* Allow editor-validation for enum-lists
* Handle "Show Explainations scenario" correctly
* Grabber - Ensure save is only possible on valid content
* Dashboard update + fix GlobalSignal connection
* Ensure default database is populated with current release
* Correct grabber4L2 access level
* Display Signal detection area in preview
* Write Hyperion version into default config on compiling.
* Create defaultconfig.json dynamically
* WebUI changes
* Correct grabber config look-ups
* Refactor i18n language loading
* Fix en.json
* Split global capture from instance capture config
* Update grabber default values
* Standalone grabber: Add --debug switch
* Enhance showInputOptionsForKey for multiple keys
* Add grabber instance link to system grabber config
* Only show signal detection area, if grabber is enabled
* Always show Active element on grabber page
* Remote control - Only display gabber status, if global grabber is enabled
* WebUI optimization (thx to @mkcologne)
Start Grabber only when global settings are enabled
Fixed an issue in the WebUI preview
* V4L2/MF changes
* Jsoneditor, Correct translation for default values
* Refactor LED-Device handling in UI and make element naming consistent
* MF Discovery extended
* Fix LGTM finding
* Support Grabber Bri, Hue, Sat and Con in UI, plus their defaults
* Concider Access level for item filtering
* Concider Access level for item filtering
* Revert "Concider Access level for item filtering"
This reverts commit 5b0ce3c0f2de67e0c43788190cfff45614706129.
* Disable fpsSoftwareDecimation for framegrabber, as not supported yet
* JSON-Editor- Add updated schema for validation on dynamic elements
* added V4L2 color IDs
* LGTM findings fix
* destroy SR callback only on exit
* Grabber.js - Hide elements not supported by platform
* Fixed freezing start effect
* Grabber UI - Hardware controls - Show current values and allow to reset to defaults
* Grabber - Discovery - Add current values to properties
* Small things
* Clean-up Effects and have ENDLESS consistently defined
* Fix on/off/on priority during startup, by initializing _prevVisComp in line with background priority
* Add missing translation mappings
* DirectX Grabber reactivated/ QT Grabber size decimation fixed
* typo in push-master workflow
* Use PreciseTimer for Grabber to ensure stable FPS timing
* Set default Screencapture rate consistently
* Fix libjpeg-turbo download
* Remove Zero character from file
* docker-compile Add PLATFORM parameter, only copy output file after successful compile
* Framebuffer, Dispmanx, OSX, AML Grabber discovery, various clean-up and consistencies across grabbers
* Fix merge problem - on docker-compile Add PLATFORM parameter, only copy output file after successful compile
* Fix definition
* OSXFRameGrabber - Revert cast
* Clean-ups nach Feedback
* Disable certain libraries when building armlogic via standard stretch image as developer
* Add CEC availability to ServerInfo to have it platform independent
* Grabber UI - Fix problem that crop values are not populated when refining editor rage
* Preserve value when updating json-editor range
* LEDVisualisation - Clear image when source changes
* Fix - Preserve value when updating json-editor range
* LEDVisualisation - Clear image when no component is active
* Allow to have password handled by Password-Manager (#1263)
* Update default signal detection area to green assuming rainbow grabber
* LED Visualisation - Handle empty priority update
* Fix yuv420 in v4l2 grabber
* V4L2-Grabber discovery - Only report grabbers with valid video input information
* Grabber - Update static variables to have them working in release build
* LED Visualisation - ClearImage when no priorities
* LED Visualisation - Fix Logo resizing issue
* LED Visualisation - Have nearly black background and negative logo
Co-authored-by: LordGrey <lordgrey.emmel@gmail.com>
Co-authored-by: LordGrey <48840279+Lord-Grey@users.noreply.github.com>
2021-07-14 20:48:33 +02:00
- [libjpeg-turbo SDK for Visual C++ ](https://sourceforge.net/projects/libjpeg-turbo/files/ )
2022-05-22 08:01:49 +02:00
- Download the latest 64bit installer (currently `libjpeg-turbo-2.1.3-vc64.exe` ) and install to its default location `C:\libjpeg-turbo64` .
2016-12-02 22:47:09 +01:00
2021-01-30 12:38:35 +01:00
### Optional:
- For DirectX9 grabber:
Media Foundation/V4L2 grabber ... (#1119)
* - New Media Foundation grabber
- JsonAPI available grabber fix
- commented json config removed
* Added libjpeg-turbo to dependencies
* Fix OSX build
Removed Azure Pipelines from build scripts
* Remove Platform from Dashboard
* Correct Grabber Namings
* Grabber UI improvements, generic JSONEditor Selection Update
* Active grabber fix
* Stop Framebuffer grabber on failure
* - Image format NV12 and I420 added
- Flip mode
- Scaling factor for MJPEG
- VSCode (compile before run)
- CI (push) dependency libjpeg-turbo added
* Refactor MediaFoundation (Part 1)
* Remove QDebug output
* Added image flipping ability to MF Grabber
* fix issue 1160
* -Reload MF Grabber only once per WebUI update
- Cleanup
* Improvements
* - Set 'Software Frame Decimation' begin to 0
- Removed grabber specific device name from Log
- Keep pixel format when switching resolution
- Display 'Flip mode' correct in Log
- BGR24 images always flipped
* Refactor MediaFoundation (Part 2)
* Refactor V4L2 grabber (part 1) (#62)
* Media Foundation grabber adapted to V4L2 change
* Enable Media Foundation grabber on windows
* Have fps as int, fix height typo
* Added video standards to JsonAPI output
* Error handling in source reader improved
* Fix "Frame to small" error
* Discovery VideoSources and Dynamically Update Editor
* Hide all element when no video grabber discovered, upate naming
* Do not show unsupported grabbers
* Copy Log to Clipboard
* Update Grabber schema and Defaults
* Update access levels and validate crop ranges
* Height and width in Qt grabber corrected
* Correct formatting
* Untabify
* Global component states across instances
* Components divided on the dashboard
* refactor
* Fix Merge-issues
* Database migration aligning with updated grabber model
* Align Grabber.js with new utility functions
* Allow editor-validation for enum-lists
* Handle "Show Explainations scenario" correctly
* Grabber - Ensure save is only possible on valid content
* Dashboard update + fix GlobalSignal connection
* Ensure default database is populated with current release
* Correct grabber4L2 access level
* Display Signal detection area in preview
* Write Hyperion version into default config on compiling.
* Create defaultconfig.json dynamically
* WebUI changes
* Correct grabber config look-ups
* Refactor i18n language loading
* Fix en.json
* Split global capture from instance capture config
* Update grabber default values
* Standalone grabber: Add --debug switch
* Enhance showInputOptionsForKey for multiple keys
* Add grabber instance link to system grabber config
* Only show signal detection area, if grabber is enabled
* Always show Active element on grabber page
* Remote control - Only display gabber status, if global grabber is enabled
* WebUI optimization (thx to @mkcologne)
Start Grabber only when global settings are enabled
Fixed an issue in the WebUI preview
* V4L2/MF changes
* Jsoneditor, Correct translation for default values
* Refactor LED-Device handling in UI and make element naming consistent
* MF Discovery extended
* Fix LGTM finding
* Support Grabber Bri, Hue, Sat and Con in UI, plus their defaults
* Concider Access level for item filtering
* Concider Access level for item filtering
* Revert "Concider Access level for item filtering"
This reverts commit 5b0ce3c0f2de67e0c43788190cfff45614706129.
* Disable fpsSoftwareDecimation for framegrabber, as not supported yet
* JSON-Editor- Add updated schema for validation on dynamic elements
* added V4L2 color IDs
* LGTM findings fix
* destroy SR callback only on exit
* Grabber.js - Hide elements not supported by platform
* Fixed freezing start effect
* Grabber UI - Hardware controls - Show current values and allow to reset to defaults
* Grabber - Discovery - Add current values to properties
* Small things
* Clean-up Effects and have ENDLESS consistently defined
* Fix on/off/on priority during startup, by initializing _prevVisComp in line with background priority
* Add missing translation mappings
* DirectX Grabber reactivated/ QT Grabber size decimation fixed
* typo in push-master workflow
* Use PreciseTimer for Grabber to ensure stable FPS timing
* Set default Screencapture rate consistently
* Fix libjpeg-turbo download
* Remove Zero character from file
* docker-compile Add PLATFORM parameter, only copy output file after successful compile
* Framebuffer, Dispmanx, OSX, AML Grabber discovery, various clean-up and consistencies across grabbers
* Fix merge problem - on docker-compile Add PLATFORM parameter, only copy output file after successful compile
* Fix definition
* OSXFRameGrabber - Revert cast
* Clean-ups nach Feedback
* Disable certain libraries when building armlogic via standard stretch image as developer
* Add CEC availability to ServerInfo to have it platform independent
* Grabber UI - Fix problem that crop values are not populated when refining editor rage
* Preserve value when updating json-editor range
* LEDVisualisation - Clear image when source changes
* Fix - Preserve value when updating json-editor range
* LEDVisualisation - Clear image when no component is active
* Allow to have password handled by Password-Manager (#1263)
* Update default signal detection area to green assuming rainbow grabber
* LED Visualisation - Handle empty priority update
* Fix yuv420 in v4l2 grabber
* V4L2-Grabber discovery - Only report grabbers with valid video input information
* Grabber - Update static variables to have them working in release build
* LED Visualisation - ClearImage when no priorities
* LED Visualisation - Fix Logo resizing issue
* LED Visualisation - Have nearly black background and negative logo
Co-authored-by: LordGrey <lordgrey.emmel@gmail.com>
Co-authored-by: LordGrey <48840279+Lord-Grey@users.noreply.github.com>
2021-07-14 20:48:33 +02:00
- [DirectX Software Development Kit ](https://www.microsoft.com/en-us/download/details.aspx?id=6812 ) ([direct link](https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe))
2021-01-30 12:38:35 +01:00
- For package creation:
- [NSIS 3.x ](https://sourceforge.net/projects/nsis/files/NSIS%203/ ) ([direct link](https://sourceforge.net/projects/nsis/files/latest/download))
2020-10-24 18:58:02 +02:00
2016-12-02 22:47:09 +01:00
# Compiling and installing Hyperion
2021-03-19 22:53:14 +01:00
## The general quick way (without big comments)
2017-01-06 18:19:45 +01:00
2021-03-19 22:53:14 +01:00
**complete automated process for Mac/Linux:**
```console
2017-09-02 22:26:22 +02:00
wget -qO- https://raw.githubusercontent.com/hyperion-project/hyperion.ng/master/bin/compile.sh | sh
```
2021-03-19 22:53:14 +01:00
**some more detailed way: (or more or less the content of the script above)**
2017-09-02 22:26:22 +02:00
2021-03-19 22:53:14 +01:00
```console
# be sure you fulfill the prerequisites above
2016-12-05 18:47:47 +01:00
git clone --recursive https://github.com/hyperion-project/hyperion.ng.git hyperion
2016-12-02 22:47:09 +01:00
cd hyperion
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j $(nproc)
2020-09-06 13:43:44 +02:00
if this get stucked and dmesg says out of memory try:
2019-06-20 23:52:47 +02:00
make -j 2
2016-12-02 22:47:09 +01:00
# optional: install into your system
2017-07-05 23:19:44 +02:00
sudo make install/strip
2016-12-02 22:47:09 +01:00
# to uninstall (not very well tested, please keep that in mind)
2017-07-05 23:19:44 +02:00
sudo make uninstall
2016-12-02 22:47:09 +01:00
# ... or run it from compile directory
2017-10-12 11:55:03 +02:00
bin/hyperiond
2019-01-06 19:49:56 +01:00
# webui is located on localhost:8090 or 8091
2016-12-02 22:47:09 +01:00
```
2021-11-16 18:12:56 +01:00
In case you would like to build with a dedicated Qt version, Either supply ``QTDIR`` as ``-DQTDIR=< path > `` to cmake or set and environment variable ``QTDIR`` pointing to the Qt installation.
2022-05-22 08:01:49 +02:00
On Windows MSVC2022 set it via the CMakeSettings.json:
2021-11-16 18:12:56 +01:00
```posh
"configurations": [
{
...
"environments": [
{
2022-05-22 08:01:49 +02:00
"QTDIR": "C:/Qt/6.2.2/msvc2019_64/"
2021-11-16 18:12:56 +01:00
}
]
},
```
2021-03-19 22:53:14 +01:00
## The detailed way (with many comments)
2016-12-02 22:47:09 +01:00
2021-03-19 22:53:14 +01:00
**Download:**
2019-01-06 19:49:56 +01:00
Creates hyperion directory and checkout the code from github
2021-03-19 22:53:14 +01:00
```console
2016-08-04 22:32:44 +02:00
export HYPERION_DIR="hyperion"
2019-01-19 18:35:40 +01:00
git clone --recursive --depth 1 https://github.com/hyperion-project/hyperion.ng.git "$HYPERION_DIR"
2016-08-04 22:32:44 +02:00
```
2021-03-19 22:53:14 +01:00
**Preparations:**
2016-12-02 22:47:09 +01:00
Change into hyperion folder and create a build folder
2021-03-19 22:53:14 +01:00
```console
2016-12-02 22:47:09 +01:00
cd "$HYPERION_DIR"
mkdir build
cd build
2016-08-04 22:32:44 +02:00
```
2021-03-19 22:53:14 +01:00
**Generate the make files:**
2016-12-02 22:47:09 +01:00
To generate make files with automatic platform detection and default settings:
2021-03-19 22:53:14 +01:00
This should fit to *RPI, x86, amlogic/wetek:
```console
2016-12-02 22:47:09 +01:00
cmake -DCMAKE_BUILD_TYPE=Release ..
2016-08-04 22:32:44 +02:00
```
2016-12-02 22:47:09 +01:00
*Developers on x86* linux should use:
2021-03-19 22:53:14 +01:00
```console
2019-01-19 18:35:40 +01:00
cmake -DPLATFORM=x11-dev -DCMAKE_BUILD_TYPE=Release ..
2016-08-04 22:32:44 +02:00
```
To use framebuffer instead of dispmanx (for example on the *cubox-i* ):
2021-03-19 22:53:14 +01:00
```console
2016-08-04 22:32:44 +02:00
cmake -DENABLE_FB=ON -DCMAKE_BUILD_TYPE=Release ..
```
To generate make files on OS X:
2017-10-13 17:49:29 +02:00
Platform should be auto detected and refer to osx, you can also force osx:
2021-03-19 22:53:14 +01:00
```console
2017-10-13 17:49:29 +02:00
cmake -DPLATFORM=osx -DCMAKE_BUILD_TYPE=Release ..
2017-03-14 00:39:05 +01:00
```
2017-10-13 17:49:29 +02:00
2020-05-12 19:51:19 +02:00
To generate files on Windows (Release+Debug capable):
Platform should be auto detected and refer to windows, you can also force windows:
2020-05-18 21:09:33 +02:00
2021-03-19 22:53:14 +01:00
```posh
2020-05-18 21:09:33 +02:00
# You might need to setup MSVC env first
2022-05-22 08:01:49 +02:00
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
cmake -DPLATFORM=windows -G "Visual Studio 17 2022" ..
2020-05-12 19:51:19 +02:00
```
2021-03-19 22:53:14 +01:00
**Run make to build Hyperion:**
2016-08-04 22:32:44 +02:00
The `-j $(nproc)` specifies the amount of CPU cores to use.
2021-03-19 22:53:14 +01:00
```console
2016-08-04 22:32:44 +02:00
make -j $(nproc)
```
2016-11-21 23:06:10 +01:00
On a mac you can use ``sysctl -n hw.ncpu`` to get the number of available CPU cores to use.
2021-03-19 22:53:14 +01:00
```console
2016-11-21 23:06:10 +01:00
make -j $(sysctl -n hw.ncpu)
2016-08-04 22:32:44 +02:00
```
2021-03-19 22:53:14 +01:00
On Windows run:
```posh
2020-05-12 19:51:19 +02:00
cmake --build . --config Release -- -maxcpucount
```
2022-05-22 08:01:49 +02:00
Maintainer: To build installer, install [NSIS ](https://nsis.sourceforge.io/Main_Page ) and set env `VCINSTALLDIR="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC"`
2020-05-12 19:51:19 +02:00
2021-03-19 22:53:14 +01:00
**Install hyperion into your system:**
2016-12-02 22:47:09 +01:00
Copy all necessary files to ``/usr/local/share/hyperion``
2021-03-19 22:53:14 +01:00
```console
2016-12-02 22:47:09 +01:00
sudo make install/strip
2016-11-21 23:06:10 +01:00
```
2016-12-02 22:47:09 +01:00
If you want to install into another location call this before installing
2016-11-21 23:06:10 +01:00
2021-03-19 22:53:14 +01:00
```console
2016-12-02 22:47:09 +01:00
cmake -DCMAKE_INSTALL_PREFIX=/home/pi/apps ..
2016-11-21 23:06:10 +01:00
```
2016-12-02 22:47:09 +01:00
This will install to ``/home/pi/apps/share/hyperion``
2016-11-21 23:06:10 +01:00