GithubHelp home page GithubHelp logo

qsuelin / vcs_csharp Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 117.82 MB

Video catalog system web application for managing local videos(.Net Core).

C# 1.19% HTML 0.06% CSS 0.01% JavaScript 0.01% Python 97.05% PowerShell 0.04% Shell 0.02% C++ 0.73% C 0.82% Fortran 0.04% Roff 0.03%

vcs_csharp's Introduction

Overview

The goal of the video catalog system(VCS) application is to manage TB-size local videos regarding to robotics. It implements a comprehensive tag system so that users can browse and search related videos via complex metrics as well as edit tags for specific video. This application is meant to be an auxiliary tool for mechanism/electronics design of robots.

Features

  1. Customized authentication system for different users
  2. Populate video database automatically with related metadata from videos
  3. Display video in a list view
  4. Users can edit tags for specific video
  5. Users can search video via tag
  6. Users can click and play the video on the fly

Stack

  1. Video ingest: Python, ffmpeg library
  2. Server: ASP.NET Core
  3. Front end: BootStrap, Razor Template
  4. Database: MySQL

Cracking Down Challenges

  1. Implement a de-duplicate algorithm
    • Duplicated files
    • Deleted files
    • Moved files
    • Renamed files
  2. Robust parsing script for various format of video files
    • Not all formats store duration information at stream level, eg: Matroska
    • Some files don't have standard filenames or multiple '.', eg: Screw-Wedge Table Feed Mechanism-Mechanisms X-20161203.f136.mp4
  3. Manual duplication handling
    • show the complete list of alternative paths
    • ask user to pick the one to keep
    • call I/O to delete other files on local disk
  4. Call Python script in C#
  5. Optimize database performance
    • create index on columns: Size, Hash
  6. Sync on-disk file -> DB
    • Create TABLE WatchDirs to track on disk directories to watch
    • Walk through all the directories in WatchDirs on disk, and check if size/hash exists in DB
    • Update WatchDirs when load new directories. Make sure WatchDir is not a parent/child of any existing record in WatchDirs
  7. Detecting corrupt, truncated, damaged files

Design

Iteration 1: Table Dup

Scenario: In table Videos, make hash as primary key, and make it as foreign key in table Dup.
Problem: difficulty to track changes of on-disk VS TABLE Dup

Iteration 2: No Dup table. Hash not primary

Scenorio: Auto-incremented primary key for Videos, non-unique hash meaning there will be multiple same videos in TABLE Videos. Then there will be no need for TABLE Dup.

ER Diagram

UML Activity/Sequence Diagram

vcs_csharp's People

Contributors

qsuelin avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.