Giter Site home page Giter Site logo

video-transcode-queue's Introduction

Video-transcode-queue

A sample infrastructure for processing video upload & transcoding.

  • React web UI
  • REST API in Golang
  • PostgreSQL
  • Nginx proxy
  • Redis task queue storage
  • Redis task consumer in Golang
  • Redis task producer in Golang
  • Video transcoder in Golang

Powered by Kubernetes Helm packages

How to run locally

  1. Install Docker, Kubernetes, Minikube, and helm package manager
  2. Install ffmpeg && codecs (If you want to troubleshoot ffmpeg commands outside of docker)
  • brew install ffmpeg --with-chromaprint --with-fdk-aac --with-fontconfig --with-freetype --with-frei0r --with-game-music-emu --with-libass --with-libbluray --with-libbs2b --with-libcaca --with-libebur128 --with-libgsm --with-libmodplug --with-libsoxr --with-libssh --with-libvidstab --with-libvorbis --with-libvpx --with-opencore-amr --with-openh264 --with-openjpeg --with-openssl --with-opus --with-rtmpdump --with-rubberband --with-schroedinger --with-sdl2 --with-snappy --with-speex --with-tesseract --with-theora --with-tools --with-two-lame --with-wavpack --with-webp --with-x265 --with-xz --with-zeromq --with-zimg
  1. Expose FFMPEG C libraries (If you want to troubleshoot ffmpeg commands outside of docker)
  • export FFMPEG_ROOT=export FFMPEG_ROOT=/usr/local/Cellar/ffmpeg/3.3.1 export CGO_LDFLAGS="-L$FFMPEG_ROOT/lib/ -lavcodec -lavformat -lavutil -lswscale -lswresample -lavdevice -lavfilter" export CGO_CFLAGS="-I$FFMPEG_ROOT/include" export LD_LIBRARY_PATH=$HOME/ffmpeg/lib
  1. helm init && helm repo update
  2. Install helm packages
  • bash build_helm_packages.sh
  1. Build docker images
  • eval $(minikube docker-env)
  • bash build_docker_images.sh
  1. Run Kubernetes resources
  • bash build_kubernetes_resources.sh
  1. Run minikube and kubectl proxy
  • minikube start
  • kubectl proxy
  1. Access minikube external url
  • minikube service video-api --url or minikube service streaming-api --url

video-transcode-queue's People

Contributors

n1207n 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.