Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 34

Stream-Sync ( Live Streaming Platform )

Submitted in partial fulfilment of the requirements

of the degree of

BACHELOR OF ENGINEERING
by

KAPIL SHANDILYA (Roll No. 41)

VINAYAK SINGH (Roll No. 48)

ANIKET VISHWAKARMA (Roll No. 53)

SAHIL PRAJAPATI (Roll No. 60)

Supervisor:

Prof. UMA .K. ADE

Watumull Institute Of Electronics Engineering And Computer


Technology
2023-2024

1
CERTIFICATE

This is to certify that the project entitled “Stream-Sync” is a Bonafide work of “Kapil

Shandilya” (Roll No. 41) , “ Vinayak Singh ” (Roll No. 48) , “Aniket

Vishwakarma” (Roll No. 53) , “Sahil Prajapati” (Roll No.60)submitted to the


University of Mumbai in partial fulfilment of the requirement for the award of the degree of

“Bachelor of Engineering” in “Computer Engineering”.

Prof. Uma K Ade.


(Guide)

Prof. Nilesh Mehta Prof. Avinash Gondal


(Head of Department) (Incharge Principal)

2
Thesis Approval for Mini Project for T.E. for
Partial Fulfilment B.E.

This project report entitled Stream-Sync by Kapil Shandilya(41) ,

Vinayak Singh (48) , Aniket Vishwakarma (53) , Sahil Prajapati


(60) is approved for the degree of Bachelor of Engineering in
Computer .

Examiners

1. -----------------------------------------

2. ------------------------------------------

Date:

Place:

3
Declaration
I declare that this written submission represents my ideas in my own words and
where others' ideas or words have been included, I have adequately cited and
referenced the original sources. I also declare that I have adhered to all
principles of academic honesty and integrity and have not misrepresented
or fabricated or falsified any idea/data/fact/source in my submission. I
understand that any violation of the above will be cause for disciplinary action
by the Institute and can also evoke penal action from the sources which have
thus not been properly cited or from whom proper permission has not been taken
when needed.

--------------------------------

Kapil Shandilya (41)

--------------------------------

Vinayak Singh (48)

--------------------------------

Aniket Vishwakarma (53)

Date:-

----------------------------

Sahil Prajapati (60)

4
ACKNOWLEDGEMENT

In completing this project report on project titled Stream-Sync I had to take the
help and guideline of a few respected people, who deserve my greatest gratitude.

I would like to show my gratitude to Prof. Uma Ade for giving me a good
guideline for project throughout numerous consultations. I would also like to
expand my deepest gratitude to all those who have directly and indirectly guided
us in writing this project report.

Many people, especially my classmates and friends themselves, have made


valuable comments and suggestions on this proposal which gave me inspiration
to improve my project. Here I thank all the people for their help directly and
indirectly to complete this project report.

5
ABSTRACT

"Stream-Sync" is a dynamic live streaming platform designed to synchronize the


entertainment experiences of users across the globe. Offering a diverse array of
content ranging from gaming to educational seminars, Stream-Sync
revolutionizes the concept of live streaming by introducing real-time interaction
and communal engagement. By leveraging innovative synchronization
technology, users can seamlessly watch and participate in live events together,
regardless of geographical barriers. With features such as live chat, interactive
polls, and synchronized playback, Stream-Sync fosters a sense of community
and connection among its users, transforming passive viewing into an immersive
shared experience. Whether it's cheering on a favourite gamer, attending a
virtual concert, or engaging in a live Q&A session, Stream-Sync redefines the
boundaries of live streaming, uniting audiences worldwide in real-time
enjoyment and interaction.

6
Problem statement

"In the rapidly evolving landscape of digital entertainment, traditional methods


of content consumption are becoming outdated. Viewers face challenges in
finding high-quality live streaming platforms that offer seamless experiences,
diverse content options, and robust community engagement features. Existing
platforms often lack efficient synchronization technology, leading to disjointed
viewing experiences and limited interactivity among users. Additionally,
geographical barriers and time zone differences hinder the ability of audiences to
engage in live events together, limiting the sense of community and shared
experience. Consequently, there is a pressing need for a live streaming website
that addresses these challenges by providing innovative synchronization
technology, diverse content offerings, and immersive community engagement
features, ultimately redefining the way audiences interact with live content in the
digital age."

7
Table of Contents Page Number
1. Introduction

 Introduction to Stream-Sync 09
 Reason for the project 09
 Aims & Objectives 10
 Scope of the Project 10
 Summary 10

2. Literature Review

 Overview of live streaming technologies 11


 Evaluation of existing platforms 12
 WHIP Protocol 13

3. Methodology

 Research Methodology 14
 Tools and Technologies Used 15

4. System Design

 System Architecture 20
 Functional Requirements 21
 Non-Functional Requirements 21
 User Interface (UI) Design 22

5. Testing

 Testing Methodology 24
 Test cases and scenarios 26

6. Future Scope

 Proposed Enhancements 27

7. Conclusion 28
8
8. Appendices & References 29

1. INTRODUCTION
1.1 Introduction to Stream-Sync :-
We are pleased to introduce the future of entertainment with our Live Streaming
Platform. In an increasingly interconnected world driven by digital experiences,
our platform seeks to revolutionize the way we engage with and consume
content and have a chat with the creator in real time.

This innovative initiative caters to the increasing need for real-time engagement,
offering users a dynamic and interactive platform to engage in live events,
collaborate with creators, and share experiences in an immersive digital
environment.

1.2 Reason for the Project :-


In this ever-increasing world of popular methods of content creation and
consumption each platform has a backend scheme hidden in their apps terms and
services or premium functions making the ordinary person to not be able to enjoy
half of the features of the software being used.

The main motive behind the creation of Stream-Sync is to eliminate such


backend monetary transections and schemes ensuring that the viewers and the
creator share a bond that is not classified based on who paid more gets to know
more of the creator.

1.3 Aims & Objectives :-


Main objective for creation of Stream-Sync is to establish and cater a process of
bond formation between a Content Creator and an average Viewer without any
form of Money being involved.

9
Stream-Sync aims for providing the best platform to be on in this modern era of
content creation and consumption where other platforms are full of sketchy
schemes behind the scenes trying to scam the creator or the viewer

1.4 Scope :-
No individual is same and with the help of our project we provide an platform
to every creator to express their creative and unique personality to world wide
audience Live using internet

We also provide platform to a wide verity of audience looking for a place for
entertainment and interacting with the creator simultaneously

1.5 Summary :-
This project deals with the Development of an Live Streaming Platform namely
”Stream-Sync” where an user can be a creator or a casual viewer being able
to interact with each-others live with an minimal delay of 200ms
(Milli-Seconds).

We are successful in establishing the secure Live connection from creator’s


end to the internet where an average user can watch the creator live as well
as communicate in Real-Time using Text-Chat features.

10
2. LITERATURE REVIEW
2.1 Overview of Live Steaming Technologies :-
1. Content Delivery Networks (CDNs):

 CDNs are essential for live streaming as they ensure reliable and scalable
delivery of content to viewers worldwide.
 They use distributed servers strategically placed around the globe to
reduce latency and deliver content efficiently.

2. Streaming Protocols:

 Different protocols are used for live streaming, including HTTP-based


protocols like HLS (HTTP Live Streaming) and MPEG-DASH (Dynamic
Adaptive Streaming over HTTP), as well as real-time protocols like RTMP
(Real-Time Messaging Protocol) and WebRTC (Web Real-Time
Communication).
 Each protocol has its advantages and is suited for different use cases, such
as adaptive bitrate streaming, low-latency streaming, or peer-to-peer
streaming.

3. Encoder Software and Hardware:

 Encoders are used to convert audio and video signals into a format suitable
for streaming over the internet.
 Software encoders like OBS Studio, XSplit, and Wirecast are popular
choices for live streaming, offering features like scene composition,
overlays, and streaming to multiple platforms simultaneously.
 Hardware encoders provide dedicated encoding capabilities and are often
used for professional live productions, offering higher reliability and
performance.

11
2.2 Evaluation of Existing Platforms :-

1. YouTube Live:

 Pros: Largest audience reach, integration with YouTube ecosystem, robust


infrastructure, monetization options including ads, memberships, and
Super Chat, easy-to-use interface, analytics.
 Cons: Limited customization options, content moderation issues, stricter
copyright enforcement.

2. Twitch:
 Pros: Focused on gaming and esports, strong community engagement
features like chat, subscriptions, and emotes, monetization options
including ads, subscriptions, and donations, customizable channel pages.
 Cons: Limited audience outside gaming niche, high competition, content
discovery challenges for new streamers.

3. Instagram Live:
 Pros: Integration with Instagram platform, high engagement among younger
audiences, features like questions and polls during live streams, easy to use for
influencers and brands.
 Cons: Limited monetization options, shorter maximum duration for live streams,
content discovery challenges.

12
2.3 WHIP Protocol

The WebRTC-HTTP ingest protocol (WHIP) uses an HTTP POST request to


perform a single shot SDP offer/answer so an ICE/DTLS session can be
established between the encoder/media producer (WHIP client) and the
broadcasting ingestion endpoint (media server).

Once the ICE/DTLS session is set up, the media will flow unidirectionally from
the encoder/media producer (WHIP client) to the broadcasting ingestion
endpoint (media server). In order to reduce complexity, no SDP renegotiation is
supported, so no tracks or streams can be added or removed once the initial SDP
offer/answer over HTTP is completed.

13
3. METHODOLOGY
3.1 Research Methodology :-

Utilize a combination of qualitative and quantitative methods to collect data.


This includes :-

 Surveys: Design and distribute surveys to users and content creators to


gather feedback on their experiences with different platforms.
 Interviews: Conduct interviews with industry experts, content creators, and
platform representatives to gain deeper insights into platform features,
strategies, and challenges.
 Platform Analysis: Use platform analytics, user feedback, and usability
testing to evaluate features, performance, and user experience.
 Comparative Analysis: Compare key metrics and features across different
platforms to identify strengths, weaknesses, and areas for improvement.

14
3.2 Tools and Technologies used :-

Technologies Used:

 HTML-5:-
 TailWind CSS
 JavaScript (JS)
 Node JS
 Next JS
 TypeScript (TS) [ Framework ]
 React JS
 Shad-CN UI [ Components Library ]

Tools Used :
 VS Code
 Clerk [ Authentication ]
 Prisma ORM [ Database and Server Connection ]
 Aiven Console [ Online MySQL DataBase ]
 LiveKit [ Live Streaming Platform SDK ]
 UploadThing [ Live Stream Service Provider ]
 NGROK [ Making Website Live Tool ]

15
HTML :-

Hyper-Text Markup Language or HTML is the standard markup language for


documents designed to be displayed in a web browser. It defines the content and
structure of web content. It is often assisted by technologies such as Cascading
Style Sheets (CSS) and scripting languages such as JavaScript.

Web browsers receive HTML documents from a web server or from local
storage and render the documents into multimedia web pages. HTML describes
the structure of a web page semantically and originally included cues for its
appearance.

TailWind CSS :-

Tailwind CSS is a utility-first CSS framework that streamlines web development


by providing a set of pre-designed utility classes. These classes enable rapid
styling without writing custom CSS, promoting consistency and scalability.
Tailwind’s approach shifts focus from traditional CSS components to functional
classes, empowering developers to efficiently build responsive and visually
appealing interfaces with minimal effort.

JavaScript (JS) :-

JavaScript (js) is a light-weight object-oriented programming language which is


used by several websites for scripting the webpages. It is an interpreted, full-
fledged programming language that enables dynamic interactivity on websites
when applied to an HTML document. It was introduced in the year 1995 for
16
adding programs to the webpages in the Netscape Navigator browser. Since
then, it has been adopted by all other graphical web browsers. With JavaScript,
users can build modern web applications to interact directly without reloading
the page every time. The traditional website uses js to provide several forms of
interactivity and simplicity.

ReactJS :-

React. js is an open-source JavaScript library, crafted with precision by


Facebook, that aims to simplify the intricate process of building
interactive user interfaces. Imagine a user interface built with React as a
collection of components, each responsible for outputting a small,
reusable piece of HTML code

NodeJS :-

It is used for server-side programming, and primarily deployed for non-


blocking, event-driven servers, such as traditional web sites and back-
end API services, but was originally designed with real-time, push-based
architectures in mind. Every browser has its own version of a JS engine,
and node.

Next. JS :-

Next.js is an open-source web development framework created by the private


company Vercel providing React-based web applications with server-side
rendering and static website generation.

React documentation mentions Next.js among "Recommended Toolchains"


advising it to developers when "building a server-rendered website with
Node.js". It’s Where traditional React apps can only render their content in the

17
client-side browser, Next.js extends this functionality to include applications
rendered on the server-side.

TypeScript (TS) :-

TypeScript adds additional syntax to JavaScript to support a tighter integration


with your editor. Catch errors early in your editor. TypeScript code converts to
JavaScript, which runs anywhere JavaScript runs: In a browser, on Node.js or
Deno and in your apps. TypeScript understands JavaScript and uses type
inference to give you great tooling without additional code.

ShadCN-UI :-

With Shad-CN, you can quickly and easily create user interfaces that are both
stylish and functional. If you are looking for a way to build modern, stylish, and
accessible web applications with Next. js, then Shadcn is a great option.

VS Code :-

Visual Studio Code is a streamlined code editor with support for development
operations like debugging, task running, and version control. It aims to provide
just the tools a developer needs for a quick code-build-debug cycle and leaves
more complex workflows to fuller featured IDEs, such as Visual Studio IDE.

Clerk :-

Clerk authenticates users, manages session tokens, and provides user


management functionality that can be used in combination with the
authorization logic available in Supabase through PostgreSQL Row Level
Security (RLS) policies.

18
Prisma ORM :-

An ORM, or Object Relational Mapper, is a piece of software designed to


translate between the data representations used by databases and those used in
object-oriented programming.

Aiven Console :-

The Aiven platform takes the pain out of cloud data infrastructure management.
Aiven's all-in-one cloud data platform combines all the tools you need to
connect to the data services you use, on all major cloud providers.

LiveKit :-

LiveKit is an open source WebRTC stack that gives you everything needed to
build scalable and real-time video, audio, and data experiences in your
applications.

UploadThing :-

UploadThing is the easiest way to add file uploads to your full stack TypeScript
application. Many services have tried to build a "better S3", but in our opinion,
none found the right compromise of ownership, flexibility and safety.

NGROK :-

Ngrok is a cross-platform application that creates secure tunnels (paths) to


localhost machine. It enables developers to expose a local development server to
the Internet with minimal effort.

19
4. System Design

4.1 System Architecture :-

User Interface (UI):


 The UI serves as the front end of the system, providing an interface for
researchers to interact with the platform.
 It includes components for accessing research tools, inputting data,
visualizing results, and generating reports. Backend Services:

Back-End Services:
 Authentication and Authorization: Implement mechanisms for user
authentication and authorization to ensure secure access to the system.
 Database Management: Manage databases for storing research data, user
profiles, survey responses, interview transcripts, and analytical results.
 Business Logic: Implement business logic for processing user inputs,
conducting data analysis, generating reports, and delivering insights.

Integration with External Tools and APIs:


 Integrate with external tools and APIs for conducting surveys, scheduling
interviews, accessing platform analytics, and performing comparative
analysis.
 Ensure compatibility and interoperability with a wide range of third-party
tools and platforms commonly used in live streaming research.

20
4.2 Functional Requirements :-
 Good Internet
 NodeJS Version 18.20 or ABOVE
 Shad-CN UI
 Prisma
 Aiven Console
 UploadThing
 LiveKit
 NGROK
 Clerk

4.3 Non Functional Requirements :-


Performance Testing and Optimization:
 Conducting performance testing to identify bottlenecks, optimize system
performance, and validate scalability under different load conditions.
 Implement caching, indexing, and optimization techniques to improve data
retrieval, processing, and analysis performance.
Security:
 The system should enforce robust security measures to protect sensitive
research data, user information, and intellectual property.
 It should implement authentication, authorization, data encryption, and
secure communication protocols to prevent unauthorized access and data
breaches.
Interoperability:
 The system should be interoperable with a wide range of devices,
browsers, operating systems, and third-party tools commonly used in live
streaming research.
 It should support standard data formats, protocols, and APIs for seamless
integration with external systems and services.
21
4.4 User Interface ( UI )
No Log-In Home Page

22
Sign-Up Page

Log-In Page

Creator DashBoard

23
5. Testing

5.1 Testing Methodology :-


Requirement Analysis:
 Review functional and non-functional requirements to understand the
expected behavior and performance of the system.
 Identify testable requirements, acceptance criteria, and key performance
indicators (KPIs) for each component and feature.
Test Planning:
 Develop a test plan outlining the testing approach, objectives, scope,
resources, and timelines.
 Define test scenarios, test cases, and test data required to validate system
functionality, performance, security, and usability.
Test Environment Setup:

24
 Set up a testing environment that mirrors the production environment,
including hardware, software, networks, and data.
 Deploy the system components, testing tools, and dependencies needed for
testing.
Unit Testing:
 Conduct unit testing to validate the functionality of individual system
components, modules, and classes.
 Write unit tests using frameworks like JUnit, NUnit, or PyTest to verify
that each unit behaves as expected and handles various inputs and edge
cases correctly.
Integration Testing:
 Perform integration testing to verify the interaction and interoperability of
different system components and modules.
 Test integration points, data flows, and communication channels between
system elements to ensure seamless operation and data consistency.

System Testing:
 Execute system-level tests to validate end-to-end functionality,
performance, and usability of the entire system.
 Test core features, user interactions, data processing, analysis, and
reporting capabilities to ensure they meet requirements and user
expectations.
Acceptance Testing:
 Conduct acceptance testing to validate that the system meets stakeholder
expectations and business requirements.
 Involve stakeholders, end users, and domain experts in reviewing the
system, providing feedback, and verifying that it meets their needs.
Performance Testing:

25
 Perform performance testing to evaluate the scalability, reliability, and
responsiveness of the system under various load conditions.
 Use tools like Apache JMeter, LoadRunner, or Gatling to simulate realistic
user traffic and measure system performance metrics such as response
time, throughput, and resource utilization.
Security Testing:
 Conduct security testing to identify vulnerabilities, threats, and risks
associated with the system architecture.
 Perform penetration testing, vulnerability scanning, and code review to
assess the effectiveness of security controls and safeguards.
Usability Testing:
 Conduct usability testing to evaluate the user experience, accessibility, and
ease of use of the system interface and features.
 Involve representative users in performing tasks, providing feedback, and
identifying usability issues or pain points.

Regression Testing:
 Perform regression testing to ensure that changes, updates, or fixes do not
introduce new defects or regressions in existing functionality.
 Re-run previously executed tests and verify that all previously
implemented features and functionalities still work as expected.
Documentation and Reporting:
 Document test results, findings, defects, and recommendations in a
comprehensive test report.
 Provide detailed insights into the system's strengths, weaknesses, and areas
for improvement, along with actionable recommendations for stakeholders
and development teams.

26
5.2 Test Case and Scenarios :-

The Software was tested under an heavy usage 5-10Streamss running at a time
together with such a loadand still it worked flawlessly while ensuring all the
features are accessible and usable throughout the live session.

6. Future Scope

6.1 Proposed Enhancements :-

 An Trained AI Model for proper Moderation of Content to avoid any form


of Explicit Behaviours or Substance Abuse or Foul Language

 To implement further Security 10000% rotection againts any form of


hacker

27
7. Conclusion :-
In conclusion, the system architecture proposed for evaluating live streaming
platforms represents a meticulously crafted framework designed to facilitate
comprehensive analysis, insightful findings, and informed decision-making
within the dynamic landscape of online media consumption. By integrating
robust testing methodologies, user-centric design principles, and cutting-edge
technologies, this architecture endeavors to empower researchers, content
creators, and industry stakeholders with a powerful toolkit for understanding,
optimizing, and harnessing the potential of live streaming platforms.
28
Through rigorous requirement analysis, meticulous planning, and diligent
execution, this architecture aims to ensure the reliability, scalability, security,
and usability of the evaluation platform, thereby fostering trust, engagement, and
collaboration among users and stakeholders. From data collection and analysis to
reporting and presentation, every aspect of the system is meticulously crafted to
deliver value, insights, and actionable recommendations that drive innovation
and excellence in the realm of live streaming.
Ultimately, this system architecture embodies a commitment to excellence,
innovation, and user empowerment, poised to make a meaningful impact in the
ever-evolving landscape of live streaming technology. By embracing the
challenges of testing, iteration, and continuous improvement, it aspires to be a
catalyst for positive change, fostering a future where live streaming platforms
thrive as vibrant hubs of creativity, connectivity, and community engagement.

8. Appendices & References

29
30
31
32
References :-
 Next JS Documentations
https://nextjs.org/learn?utm_source=next-site&utm_medium=homepage-
cta&utm_campaign=home
 Shad-CN UI
https://ui.shadcn.com/docs/installation/next

33
 PRISMA ORM
https://www.prisma.io/docs/orm/overview

 Node JS Documentations
https://nodejs.org/docs/latest/api/
 Research Links
https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html
https://www.youtube.com/watch?v=Y_CrHrEYwR4
https://www.youtube.com/@codewithantonio
https://itgenio.net/blog/advantages-and-disadvantages-of-using-twitch
https://www.reddit.com/r/NewTubers/comments/s11dhu/
youtube_a_good_career_or_waste_of_time/?rdt=36718
https://www.twitch.tv/jobs/en/#:~:text=Twitch%20is%20a%20remote-
friendly,way%20that%27s%20best%20for%20you.&text=Meaningful
%20experiences%20empower%20us%20to%20do%20our%20best%20work .

34

You might also like