NOTE: Orbit is archvived for now, due if found a much simpler and versatile way streaming to VRChat. Checkout jameskitt616/vrchat_streaming.
A Docker and PHP-Symfony based application, using FFmpeg and Mediamtx to live stream video files via RTSP.
- Project description
- Installation
- Updating
- Features
- Planned Features
- Screenshots
- License
- Credits and Special Thanks
The objective of this project is to develop an optimized video transcoding and streaming system. This system will be capable of handling video files of different formats and sizes, converting them into a specific format, and generating rtsp streams to facilitate seamless internet streaming.
The system has been designed to allow concurrent processing of multiple video files. It utilizes a combination of open-source tools and custom scripts to handle the transcoding processes efficiently.
The workflow of the system begins with users uploading video files to a designated server directory. In the future, this process can be accomplished through a user-friendly web interface. Users can browse the uploaded files and select the ones they want to transcode. An interactive form is available to guide users through the selection of the file, desired video qualities, audio track, and format. Upon submitting the form, a rtsp stream will be generated automatically.
To facilitate management of the transcoding and streaming process, the system provides a user-friendly web-based interface. Additionally, users can access various settings to customize their experience.
In summary, the goal of this project is to deliver an efficient solution for transcoding and streaming video files.
- If not already done, install Docker and Docker Compose (v2.10+)
- Copy and configure your docker compose
file
curl -L -o docker-compose.yml https://raw.githubusercontent.com/jameskitt616/orbit/main/docker-compose.prod.yml
- Update the passwords and storage paths in the docker compose file
- Run
docker compose up
(the logs will be displayed in the current shell) - Open
http://localhost
orhttp://<ip-of-your-server>
in your favorite web browser (make sure to properly configure the firewall of your server) - Run
docker compose up -d
to run the Docker containers in detached daemon mode - The firewall needs to be configured as follows: Open Port
8554
to be able to access RTSP streams. Optionally open Port80
in case you don't use a reverse proxy. - Don't forget to set up some reverse proxy (just like Caddy or Nginx) with SSL/TLS Certificates
NOTE: Please remember to periodically check the Docker Compose file or the README of this project for any changes. This is especially important if you encounter issues after an update.
- Run
docker compose pull && docker compose up -d && docker image prune -f
NOTE:
docker image prune -f
removes unused Docker images from your local machine. The -f flag forces the deletion without confirmation prompts.
- Quick and seamless initiation of video transcoding and streaming with just a few clicks.
- Automatic generation of shareable links for easy content access.
- Support for multiple users, allowing simultaneous access and utilization of the system.
- A user interface (UI) designed with a focus on simplicity and ease of use.
Enjoy!
- Select Audio Tracks
- Select Subtitles
- Enabling users to upload video files through a user-friendly web interface (Web-UI).
- Optimizing the system for mobile view and enabling installation via Browser Web Progressive App (WPA).
- Offering the ability to configure custom representations, specifying bitrate and quality settings.
- Enabling the ability to start streaming from a specific timestamp.
- Provide a method to download a video file from a given URL.
Generally, this project is still under development, and there will be ongoing work on various smaller fixes, features, and updates, which may not be explicitly mentioned above.
- When not using "Original Representation" and the video's aspect ratio is not 16:9. The output might be stretched.
- Progress calculation might do nothing.
- Storage calculation in settings might display wrong Format
Orbit is available under the MIT License.
Created by jameskitt616.