mux

command module
v0.0.0-...-77c78fe Latest Latest
Warning

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

Go to latest
Published: Jun 2, 2020 License: GPL-2.0 Imports: 1 Imported by: 0

README

Mux

Mux as a front- and backend for your media library written in Go (Golang).

Features

  • Crawl files and index them using a movie / TV show database
  • Live transmuxing to web compatible video and audio formats
  • Auto deletion of old transmuxed files
  • Image resizing and compressing and responsive image in frontend
  • Auto playing trailer for newest media on frontpage
  • Multi directory support
  • API enpoints to get raw data in JSON format

Current development

  • Remove some CSS
  • Recommender
  • Indexer: Handle watcher events (add extension check on watch events, maybe use regex)

Feature Ideas / Todo

  • Config: Add config defaults
  • Config: Add duration parser (e.g. 10m23s)
  • Indexer: Check HTTP Code and MIME type when downloading images [Done]
  • Indexer: If one image fails all images will be retried. Only retry the failed one [Done]
  • Indexer: Add DownloadPath to image which contaisn the download url to the file. Use Name to ACTUALLY hold the final path. This is empty if image could not be downloaded.
  • Indexer: Check what happens when a file gets copied (ftp) and the watcher gets triggered. What happens if we ffprobe and extract subtitles from an incomplete file.
  • Frontend: Add player state manager
  • Apollo: Add content aware resizer
  • If one step fails (more than 3 times) still continue in the sequence (This ensures the media gets saved even when incomplete)
  • Rework / Tidy up logging / error handling
  • Do all TODOs

Parts of mux

Core
  • Indexer: The indexer scans the provided media directories and fetches meta data & images for the found media files which will get saved to the database. The indexer is a multithreaded worker-based consumer.
  • Server: The server handles API, UI and Authentication request. It is based on Echo.
  • Transcoder: The transcoder handles the transcoding process of source files into a web streamable format (mp4/aac).
  • Database: The primary database interface.
Additional services
  • Util: Util provides useful utility functions across all services.
  • Cleaner: The cleaner cleans transcoded files.
  • Apollo: Apollo handles all image manipulation processes like resizing and saving files in different formats.
  • Recommender: The recommender handles the recommendations / personalization of the video feed (WIP).

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
app
db

Jump to

Keyboard shortcuts

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