S

SYNME

A live video-streaming webserver based on Real-Time Messaging Protocol (RTMP) and its implementation using Node.js.

The problem SYNME solves

Such a service is intrusmental and revolutionary in solving the issue of realtime communication using a video input. The video chatting services are based on a similar concept. A 'going-live' facility has helped the growth of the sports entertainment industry as sponsered channels can now easily just broadcast live to anyone in this world through the internet which gives people the freedom to take their 'matches/games' anywhere with them. It also helps the news agency broadcast live updates from a disaster driven area through a cableless agent and helps authorities accurately assess the situation. This year this feature also saw a major use in the rallies by major political candidates. Such live-streamings has helped grow the entertaiment industry alot. This service is a boon for gamers and their viewers/admirers and so,it has very aptly seen its profoud use there as well.

Challenges we ran into

First of all i think the biggest challenge was thinking about the idea. Landing on a good idea is one of the biggest achievements of a hackathon. Then the second challenge that we faced was to decide the techstack to implement our idea. The third challenge was deciding between which which protocol to choose for live-steaming between webRTC and RTMP. We went with RTMP because as of now it is supported by many browsers and open-source broadcasting services like obs or xsplit are based on rtmp protocol which solved our fourth challenge. the fifth challenge was to creating a unique channel for each stream and ensuring that only authenticated users are able to watch the incoming live streams. the sixth problem was to send back the information recievd from the nms api and using it to display the connected users and giving them unique identities in the form of thumbnails. the seventh problem was the display the live streams on our webpage for the we used video.js. and the final problem was making a suitable frotend with an extensive webpack so that we can compress and optimize our client-side and giving us the freedom to get information from our backend more smoothly.

Discussion