Skip to content

PetrosIbrah/iStream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 

Repository files navigation

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 

    • 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
  2. 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.