Skip to content

A server-client application for video streaming, built with Java, JavaFX, FFmpeg and Sockets.

License

Notifications You must be signed in to change notification settings

GeorgiaKt/MultimediaApp

Repository files navigation

MultimediaApp

A server-client application for video streaming, built with Java, JavaFX, FFmpeg and Sockets.

Description

This application is a server-client system developed using Java, JavaFX, FFmpeg and Sockets. The communication between the server and the client is achieved via sockets. The server is responsible for processing and generating videos in all supported formats and resolutions, as well as streaming them to the client. The videos used for these matters are retrieved from the videos folder. On the client side, the application interacts with the user, accepting inputs such as the desired video format and protocol. Based on these inputs and the client's calculated download speed, the client receives from the server a list of available for streaming videos and displays it, awaiting the user's selection. Once a video is selected, it is downloaded and streamed to the client.

To be noted:

  • All videos must be placed in videos folder.

  • Videos cannot be generated in resolutions higher than the original.

  • Supported formats, resolutions, protocols:

    • formats: avi, mp4, mkv
    • resolutions: 240p, 360p, 480p, 720p, 1080p
    • protocols: TCP, UDP, RTP/UDP
  • The available for streaming videos depend on the client's download speed. The maximum video bitrate per resolution is used, based on the Youtube resolutions and bitrates table that follows.

    Resolution 240p 360p 480p 720p 1080p
    Maximum Video Bitrate 700 Kbps 1000 Kbps 2000 Kbps 4000 Kbps 6000 Kbps
    Recommended Video Bitrate 400 Kbps 750 Kbps 1000 Kbps 2500 Kbps 4500 Kbps
    Minimum Video Bitrate 300 Kbps 400 Kbps 500 Kbps 1500 Kbps 3000 Kbps
  • If the user does not manually select a protocol, it is chosen automatically, according to the following table.

    Resolution Protocol
    240p TCP
    360p, 480p UDP
    720p, 1080p RTP/UDP

Screenshot

More screenshots can be found in screenshots folder.


Sample video provided by standaloneinstaller.

Built with:

About

A server-client application for video streaming, built with Java, JavaFX, FFmpeg and Sockets.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages