Skip to content

vudung45/HLS-GoogleDrive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Live Streaming Service

  • The goal of this project is to utilize the underlying infrastructure of Google Drive to host our own live streaming service.
  • Why Google Drive?
    • With the right recipe, we can literally scale to unlimited storage
    • Google's underlying CDN is kinda OP already. Streaming performance should be decent.

TODOS:

  • Upload -> Process:
    • Allow user to upload raw video to our service. The video will then be broken down into chunks, and distributed across multiple google drive accounts
  • Streaming:
    • Dynamically generate m3u8 file for processed videos
    • Ensure that the link to the chunk is alive. Two possible solutions are: Passive Health Monitoring (Heartbeat), or just lazily checks on demand. The most optimal approach still needs to be verified. Ideally, lazy checks should yield the best consistency, however, the latency might be too much for live streaming.
  • Possible LIVE STREAMING feature ( Like Twitch Live, Facebook Live, Youtube Live)

Notes:

  • https://github.com/googleapis/google-api-nodejs-client (Nodejs package)
  • https://cloud.google.com/iam/docs/service-accounts:
    • Each google account can create ~100 service accounts. Each service account is basically a google account.
      • Pros:
        • No manual login required, private secret is generated once and can be used forever
        • 15gb of free storage per service account ( 15 * 100 = 1.5TB / google account )
      • Cons:
        • No offical support to access the account through google drive UI (not really a con but something to keep in mind)
        • Reliability ???
  • ffmpeg -i test_upload.mp4 -acodec copy -vcodec copy -f hls -hls_time 20 -hls_list_size 0 output.m3u8
  • http://127.0.0.1:3000/watch?uploadId=5e6f50257714840985965d52 -- video player
  • http://127.0.0.1:3000/uploadInfo/5e6f50257714840985965d52 -- UploadInfo Page

Upload/File management

architecture

About

HTTP Live Streaming utilizing Google Drive CDN

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages