CHARUSAT UNIVERSITY
Project Name:- Multimedia Casting Over Wi-fi using IP
What does “a device on your Wi-Fi is casting” mean?. It generally will mean that something that is connected to your network, like your phone, is broadcasting video or audio to another device on the network, such as your television or speakers.
The project will work as mentioned below. First, Client will send a join request to the server to join the multicast group. After that Server will provide station list, site info to the client through TCP. Then whichever station it selects from the station list, it is connected to that station. All the stations are sending data, irrespective of client is connected or not. This functionality is incorporated to relate more with real life situation, eg:- T/V, radio sends data even though there is no receiver connected. Whenever receiver connects to a particular station, it starts receiving live-streaming videos from that station. Receiver can pause, resume, change station or even terminate at any given time from GUI using thread.
Table of Contents:-
- Client Side
- Server Side
- Receiver Side
- Station 1
- Station 2
We can add as many stations we want to increase the amount of content and data on the system.
General Lookout:-
First of all client will send a request to the server to join the multicast group.
after that server will provide station list and site info to the client through TCP.
whichever station is selected the client will start receiving data from that station.
all the stations will keep sending the data irrespective of whether that client is connected or not.

all the videos to be casted are converted using ffmpeg to make it streamable.
ffmpeg is a command-line tool that converts audio or video formats. It can also capture and encode in real-time from various hardware and software sources such as a TV capture card. ffplay is a simple media player utilizing SDL and the FFmpeg libraries.
USER FETURES :-
User can pause, Resume, change OR terminate the streaming at any given point of time.
Thread is used to implement these features.

We are using gtk+ for the GUI creation. As Linux uses gtk+ that is Genome Tool Kit for GUI programming.
Overview Of GTK :-

GLib
GLib is a low-level core library that forms the basis of GTK. It provides data structure handling for C.
Pango
Pango is a library for layout and rendering of text. It forms the core of text and font handling for GTK.
Cairo
Cairo is a library for 2D graphics with support for multiple output devices (including the Window System, Win32) while producing a consistent output on all media players.
GdkPixbuf
Gdk is a library for loading graphical assets like icons in various formats, like PNG, JPEG, and GIF.
ATK
ATK is a library for a set of interfaces providing accessibility.
CORE CONTENTS OF THE PROJECT:-
- the project is based on C programming.
- networking protocols like TCP and UDP to be implemented.
- Socket programming.
- Graphical User Interface.
- Ubuntu-Linux
- GTK+ v3