This summer I had an wonderful opportunity to work on Xiph.org foundations' Icecast Streaming Server as part of Google Summer of Code 2021 program. I worked on implemeting (Live) listener statistics for Icecast.
Icecast Server is used as a streaming server to broadcast to various listeners.
A Live listner statistics for the streamer of Icecast is of a great advantage it helps in analysing the statistic data of a particular stream.
Using the knowledge of MQTT protocol to publish these statistics data to external broker and using standard components like(Grafana Influxdb telegraf) to draw differnt types of charts graph etc.
The deliverables of the project are as follows:
- Implementing a stats interface. -This inteface process stats data and made this data available to get published in realtime to a broker.
- Re-structure and Refactor code.
- Processing stats events on a new thread -For publishing data over topics we made a seperate thread and assign this task to it.
- Configuring libmosquitto package inside Icecast publishing messages to a broker. -libmosquitto is used to create mqtt aware client here the icecast is acting as a client and publishing data over topics.
- Testing the published data on various topics with proper prefixes
All of the listed deliverables were completed within the GSoC period.
|Add Prefix for topic|
|Add topics and messages to publish|
|Modify Stats interface|
|Connect to the broker(mosquitto)|
|Add a new Thread Test and process the event queue events|
I have not only learned about the Open Source culture and how to write good code but also learned how to work as a team to solve problems.This was the best summer experience i ever had thankyou so much for guiding me this summer. I will still contribute to this fantastic project Icecast-server
I would like to thank my mentors for helping me reach this milestone.
- Thomas Daede
- Nathan Egge
- Phillip Schafft
- Chris Montgomery
- and all the xiph.org Foundation members
I would also like to thank Vishal Mishra for being an amazing partner in this journey.