Skip to content

A system consisted of 3 applications responsible for conversion, communication between them and video streaming.

Notifications You must be signed in to change notification settings

gkalmpenis/video-streaming-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A system consisted of 3 applications capable of video conversion, streaming and bidirectional communication (server-client model).


Technologies

  • Java 8
  • JavaFX framework
  • FFmpeg

Installation

  1. Download and install ffmpeg (https://ffmpeg.org/download.html).

  2. Run the .jar files of the applications (download them from Releases).

  3. That's it!

To log messages generated by the applications, run the .jar files from a console (java -jar <application-name>.jar).


Visuals

  • StreamDirector application - converts a video to 3 formats (avi, mp4, mkv) and 4 bitrates (0.2Mbps, 0.5Mbps, 1Mbps, 3Mbps) (a total of 12 outputs).
Click to see it in action


(GIF - Duration: 19 seconds)


  • StreamingServer application - accesses the videos to be streamed and implements the server logic.
Click to see it in action


(GIF - Duration: 8 seconds)


  • StreamingClient application - communicates with the server to request a subset of the available videos and to then request the streaming of a specific video.
Click to see it in action


1. Initial flow
(GIF - Duration: 15 seconds)



2. Changing connection speed, video format and streaming protocol
(GIF - Duration: 18 seconds)


Features

  • New: Locate the path to ffmpeg's directory on the user's computer automatically, without the user having to declare it in any system variable.
  • Server-Client communication is performed using sockets and threads. The server can accept and will respond to multiple different requests from a client. Supports TCP and UDP communication protocols.
  • The system can extract information from the title of a video which is of type videoName-bitrate.format (eg The.Invisible.Guest-3.0Mbps.mp4).
  • The client receives a list with videos that have a bitrate less or equal with his/her connection speed.
  • Built with MVC Architecture Pattern.

Notes

University project for the course of Multimedia and Multimedia Communications. It is built to work on windows machines.

About

A system consisted of 3 applications responsible for conversion, communication between them and video streaming.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published