https://github.com/petrosibrah/istream
Server-Client Streaming Service
https://github.com/petrosibrah/istream
adaptive-streaming application ffmpeg ffplay ffprobe java javafx load-balancer recording rtp server-client ssl-certificates streaming tcp udp video-streaming
Last synced: 5 months ago
JSON representation
Server-Client Streaming Service
- Host: GitHub
- URL: https://github.com/petrosibrah/istream
- Owner: PetrosIbrah
- License: other
- Created: 2025-07-10T14:53:54.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-08-03T14:20:12.000Z (7 months ago)
- Last Synced: 2025-09-06T10:19:17.243Z (6 months ago)
- Topics: adaptive-streaming, application, ffmpeg, ffplay, ffprobe, java, javafx, load-balancer, recording, rtp, server-client, ssl-certificates, streaming, tcp, udp, video-streaming
- Language: Java
- Homepage:
- Size: 53.4 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# What is iStream?
iStream is a Server-Client Java project that uses a secure connection TLS/SSL with encryption keys. The application allows the client to select a video from the Server's Catalog and stream it directly without downloading the video. The client features adaptive streaming, video clipping and more.
### It implements:
- ffmpeg wrapping (Server)
- javaFX (Client)
- Multithreading (Server)
- Logging (Server | Client)
- Process builder for commands (Server | Client)
- Video protocol transmission, TCP, UDP, RTP/UDP (Server | Client)
- Adaptive streaming (Server | Client)
- Load Balancing (Server)
- Fplay Recording (Client)
## Requirements:
1. Any video (Server side) in "AvailableVideos/" must be named as followed: "x"-"y"p."z" where x is the video name, y is the display and z is the extention. For example:
Surfing-720p.mp4
2. - If you are using **Windows**, make sure you have ffmpeg, ffprobe and ffplay as environment variables. For example:
ffmpeg => C:/ffmpeg/bin/ffmpeg.exe
ffprobe => C:/ffmpeg/bin/ffprobe.exe
ffplay => C:/ffmpeg/bin/ffplay.exe
Replace "C:/ffmpeg/bin/" with your actual path
- If you are on **Linux** make sure ffmpeg is installed using the following command:
sudo apt install ffmpeg
3. In order for the client sided Video recording to include sound, "Stream box" from realtek's drivers are recommended.
*Side note: You can run the server just by running the loadbalancer*
**This project was conducted without collaborators, and is a clear demonstration of java skills.**