404
+Page not found
+diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..59540db --- /dev/null +++ b/404.html @@ -0,0 +1,153 @@ + + +
+ + + + + + + +Page not found
+This project is part of the MXCuBE organization, designed to support the transition to the web version of MXCuBE while providing compatibility with a variety of image acquisition devices commonly used in Macromolecular Crystallography (MX) environments, such as those found in synchrotron facilities around the world.
+The goal of this project is to modernize the MXCuBE experience by moving from a desktop environment to a more flexible and accessible web-based platform. This will make it easier for researchers to interact with and control their experiments remotely, improving accessibility, collaboration, and efficiency.
+MXCuBE (Macromolecular Xtallography Customized Beamline Environment) is an open-source data acquisition software, which started in 2005 at ESRF. Initially designed for the synchrotron community, it has since grown into a globally adopted solution, used by major institutes worldwide.
+In 2010, a collaboration agreement was signed to further develop MXCuBE between major synchrotron facilities across Europe. Since then, MXCuBE has been expanded and used in facilities around the world, supporting researches in various scientific fields.
+For more information on the organization and its collaborators see the MXCuBE webpage.
+This project is licensed under the MIT License, providing open access to use, modify, and distribute the code. For full details, see the License file.
Thank you for considering contributing to MXCuBE's video-streamer! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Before diving into your first contribution, please read our guidelines. They aim at helping the community to maintain a stable and reusable code.
+If you encounter a bug or have a question, do not hesitate to:
+We welcome feature requests! Please submit them via new issue and provide as much detail as possible.
+Pull requests (PRs) are used to submit new code to the repository; they help developers review and discuss the proposed changes. To avoid any conflicts in the code base, it is important to keep your local git repository synchronised with the latest code in the upstream repository. If the repository is checked out directly, then use git pull --rebase
to obtain the latest code; if a fork is used, then add the official mxcubeweb repository to the list of remotes.
PRs should be made against the main branch. Herefore, you should create a new branch and make a PR according to the description below
+Make sure that you are working with the latest changes from the main branch. From the root of the repository do:
+git checkout main
+git pull --rebase main
+
+Create a new branch. It is recommended to use a meaningful name, for instance:
+git checkout -b [initials]-[fix/feature]-[some name]
+
+For the remainder of this page, we assume that your branch is called mx-fix-documentation
.
Make your changes through editing, deleting and adding files.
+git add .
+git commit -m "Add feature X"
+git push origin mx-fix-doumentation
+
+After committing and pushing your changes to the remote repository, the final step is to create a pull request (PR) for review and merging into the main
branch. To do so, you can navigate to your branch on the github webpage and create a new pull request. Below you can find some general guidelines for your PR:
This documentation is automatically built and published from the contents of the video-streamer repository. Each time the repository’s main
branch is updated, documentation is regenerated.
If you want to modify this documentation, make a pull request to the repository with your suggested changes.
+In this project, MkDocs is used to convert Markdown files into a static website. The core of the documentation is written in Markdown files, located in the docs/
folder, while the configuration file (mkdocs.yml
) controls how the site is built and customized.
mkdocs.yml
: This is the configuration file for MkDocs, found in the repository's root folder. It defines the structure of the documentation site, including navigation, themes, plugins, and other settings. Below you can find an example of mkdocs.yml
:site_name: MXCuBE Video-Streamer Documentation
+theme: readthedocs
+plugins:
+ - macros
+nav:
+ - Home: index.md
+ - About: about.md
+ - Installation: installation.md
+ - FAQ: faq.md
+
+
+docs/
: This folder contains the source Markdown files (.md
), which make up the content of the documentation.docs/
+├── index.md
+├── about.md
+├── installation.md
+├── faq.md
+└── images/
+
+
+To add new content to the documentation, create new Markdown files in the docs/
folder. Once you add the file, update the mkdocs.yml
navigation structure to include it. For example, if you create a tutorial.md
file, you would add it to mkdocs.yml
:
nav:
+ - Home: index.md
+ - Tutorial: tutorial.md
+
+In this project, we use the mkdocs-macros-plugin to define custom macros. You can define macros in a custom Python script (e.g., docs_config/main.py
) and use them throughout the documentation.
For example, the following macro will include the contents of the LICENSE file:
+def read_file_path(path):
+ with open(path, 'r') as file:
+ return file.read()
+
+Then, in the Markdown files, you can use this Macro like this:
+## License
+
+{{ read_file('LICENSE') }};
+
+
+Before submitting your changes to the repository, please make sure that they run locally.
+Please follow the instructions in the Installation Guide, it will automatically install mkdocs
and all the needed plugins.
MkDocs
has an integrated development server that will run per default on http://localhost:8000
. To run it navigate to the folder where mkdocs.yml
is located and run
mkdocs serve
+
+To build the static HTML files that make up your documentation, use the following command:
+mkdocs build
+
+This will generate a site/
directory in the root of the project, containing the compiled HTML files. You can then upload the contents of the site/
folder to a web server or use it for deployment.
I use this application as part of the web interface for MXCuBE; Unfortunately there is no stream output, what can I do?
+One possible issue could be a missing dependency for the video-streamer
, especially ffmpeg
is not correctly installed when the video-streamer
is used as a dependency. You can try to fix this by simply installing ffmpeg
.
I do see a stream, however after a few seconds the server connection closes and the stream blocks, what can I do?
+This could mean that the video-streamer is not keeping up with the frame rate of your camera. A fast way to check if that is the case is by changing the hardcoded _expt
value in the streamer.py
file. Depending on the used format (MJPEG or MPEG1), you need to look for this value on the corresponding streamer's (MJPEGStreamer
for MJPEG, FFMPEGStreamer
for MPEG1) __init__
function. For higher frame rates, reduce the value and re-run your server.
Detailed Explanation: The expt
value represents the latency value for the streamer to pick up the images from the camera object and converting them into the corresponding stream. If the value is too high, the streamer misses frames, if it is too low, the streamer will pick up images more often than it needs too, possibly resolving in overheating.
What types of output streams are supported?
+Currently, MJPEG and MPEG1 streams are supported, as well as the possibility to use a redis Pub/Sub channel as output. For more information about using the dual output stream with Redis
you can read our setup guide.
What types of input devices are supported?
+MXCuBE's Video Streamer supports a wide range of input devices, such as Tango (Lima) devices, MJPEG streams and Redis channels, as well as prerecorded videos and even single images for test streams. For more information on the supported devices and streams, you can read the cameras guide
+This project is an open-source video streamer, built to be working with the web version of MXCuBE but configurable to work with other projects as well.
+Ready to dive in? Follow our Installation Guide and Setup Instructions.
+We’d love your contributions! Whether you’re reporting an issue, suggesting a feature, or submitting a pull request, your help makes a difference.
+Be sure to read our Contributing Guidelines before getting started.
+Looking for help? Visit the FAQ or check out the repository page.
Start by cloning the repository to your local machine:
+git clone https://github.com/mxcube/video-streamer.git
+cd video-streamer
+
+Optionally, you can create and activate a conda environment like this:
+conda env create -f conda-environment.yml
+conda activate video-streamer
+
+If you skip this part, please make sure to have all necessary packages from conda-environment.yml
installed.
Install all dependencies necessary for the code to run; either with pip:
+# for development
+pip install -e .
+
+#for usage
+pip install .
+
+or poetry:
+poetry install
+
+