Skip to content

AgentMervin/video_server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Share+: video-sharing platform

A streaming video website for internal use. User can watch/upload/download videos from the website. Comments are also permitted if the owner(s) of the video agrees.

Features

  • Very simple to install and use;
  • Pure Golang, high performance, and cross-platform;
  • Supports commonly used transmission protocols, file formats, and encoding formats;

Architecture

image

API Design

Using HTTP Protocol to fulfill the operation on resource. Three types of APIs:

  • USER API: return states of each user.
  • RESOURCE API: returns the states of video(s).
  • COMMENT API: returns all the comments under one specific video/

Streaming Server Design

Prerequisite: bitbucket

  • UDP protocol to implement file uploading
  • Token Bucket to control rate limit

Scheduler Design

Channels are the pipes that connect concurrent goroutines.

  • Asynchronous Delete
  • Producer-Consumer Model
  • Timer: Run and Stop

Future goals

Cloud native Optimization