video_service

command module
v0.0.0-...-831c856 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 4, 2023 License: BSD-2-Clause Imports: 6 Imported by: 0

README

Video Service

Video Service is a microservice written in Golang which handles management of video uploads, video metadata storage, video storage, transcoding and chunking as required for DASH.

Package Overview

  • config:
  • dashutils: utilities relating to transcoding and chunking as required for DASH.
  • grpcserver: implements Video Service's GRPC API
  • model: abstractions over database operations for videos

Overview of Workflow

Video Uploads
  1. Scheduler uploads the video to Video Service via GRPC
  2. Video Service reads the incoming bytes for the video, and writes them to a temporary file
  3. The temporary video file is transcoded and chunked for DASH, and the DASH manifest is generated (see scripts.sh for the scripts used for transcoding and generating the manifest).
  4. The transcoded video files and DASH manifest are uploaded to AWS S3
  5. If the video is foreign (it was downloaded from another website via Scheduler), Video Service will use User Service's GRPC API to check whether a domestic user for that author already exists. If one doesn't exist, it will be created.
  6. The video is written to the videos table along with the author's domestic user ID. At this point, the video will be returned to the frontend via the getVideoList API.
TODO
  • creation of domestic users for foreign authors will fail if a user already exists with their username

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
dashutils
This package provides utilities for transcoding/chunking in compliance with DASH's requirements
This package provides utilities for transcoding/chunking in compliance with DASH's requirements
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL