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.
-
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)
-
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
-
- 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
-
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.