Thakkar Krunal Balkrishna
4 min readOct 7, 2020



Project Name:- Multimedia Casting Over Wi-fi using IP

First of from the name of project “Casting over Wi-fi using IP mean”, it is 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.

GUI : (Graphic user interface)is a system of interactive visual components for computer software. A GUI displays objects that convey information, and represent actions that can be taken by the user. The objects change color, size, or visibility when the user interacts with them.

Implementation of GUI: using gtk.

Thread is used so that two processes can run in parallel:

1) GUI

2) Socket programming to send and receive the data

A Threads is a single sequential flow of control within a program. The real excitement surrounding threads is not about a single sequential thread. Rather, it’s about the use of multiple threads running at the same time and performing different tasks in a single program.

What is Socket Programming?

A socket is one endpoint of a two-way communication link between two programs running on the network. A socket is bound to a port number so that the TCP layer can identify the application that data is destined to be sent to. An endpoint is a combination of an IP address and a port number.

Table of Contents:-

  1. Client Side
client side working
  1. Server Side
  2. Receiver Side
  3. Station 1
  4. Station 2

We can add as many stations we want to increase the amount of content and data on the system.

  1. Client to Server: TCP

a. TCP is used for one to one connection from client to server and it is used for station info and site info

2. Sender to Receiver: UDP

a. UDP is used to send multicast live-streaming videos from sender to all receivers who joined multicast group.

3. Implementation of GUI: using gtk.

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.

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.

Streaming media server

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 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 :-

GTK has been built up to be based on various libraries.


  • 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