Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/n1207n/video-transcode-queue
A sample video upload platform as a kubernetes cluster (WIP)
https://github.com/n1207n/video-transcode-queue
docker ffmpeg ffmpeg-root golang helm helm-charts helm-packages kubernetes minikube postgresql redis video-transcoding
Last synced: 6 days ago
JSON representation
A sample video upload platform as a kubernetes cluster (WIP)
- Host: GitHub
- URL: https://github.com/n1207n/video-transcode-queue
- Owner: n1207n
- Created: 2017-05-29T00:58:53.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-10-14T05:44:46.000Z (about 7 years ago)
- Last Synced: 2024-08-02T02:14:40.030Z (3 months ago)
- Topics: docker, ffmpeg, ffmpeg-root, golang, helm, helm-charts, helm-packages, kubernetes, minikube, postgresql, redis, video-transcoding
- Language: Go
- Homepage:
- Size: 114 KB
- Stars: 76
- Watchers: 4
- Forks: 18
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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`
2. 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`
2. `helm init && helm repo update`
3. Install helm packages
* `bash build_helm_packages.sh`
4. Build docker images
- `eval $(minikube docker-env)`
- `bash build_docker_images.sh`
5. Run Kubernetes resources
- `bash build_kubernetes_resources.sh`
6. Run minikube and kubectl proxy
* `minikube start`
* `kubectl proxy`
7. Access minikube external url
* `minikube service video-api --url` or `minikube service streaming-api --url`