GithubHelp home page GithubHelp logo

jerseyweeds / plexremotetranscoderdocker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from segator/plexremotetranscoderdocker

0.0 1.0 0.0 4.06 MB

This is a set of docker to setup very easy plex with remote transcoding

License: MIT License

Shell 14.67% Python 85.33%

plexremotetranscoderdocker's Introduction

PlexRemoteTranscoderDocker

This docker use my project of PlexRemoteTranscoderOrchestrator To create a automatic system that allow us to pass thru all the cpu intensive video encoding to a remote virtual machines in DigitalOcean where we pay per hour of use. So we can handle as many encodings as our network can handle.

This docker consist of two dockers: -Plex docker modified to wrap the executable "Plex New Transcoder" -A Transcoder Orchestrator that create/delete/manage the DO machines and the intercomunication between Plex and DO

What we need?

-For now to receive video transcode data from DO i am using NFS, it's not a big deal but NFS needs to have installed the nfs-kernel-server in our kernel. So maybe we can have problems depends on the machine with my docker. -We need powerfull internet connection we will send the video twice, why? Transcoder Orchestrator send to DO, Do encode and send back to Plex Server,Plex Server send to client.(think about it, it's imoportant) -cpu atless 1K benchmark power to run plex server, I tested in diferent cloud prividers, DO,aruba,scaleway, work perfect.

##Things that you should know -First deploy, the orchestrator docker need some minutes to generate a image to your DO account to avoid install nothing for your side. So keep calm and wait, you will now that it's done when in your DO account you see a image called PlexRemoteTranscoder -If you close the dockers and you have running DO VM, you will need to destroy it manually -I didn't know how to fix it so for now when you play a video that require transcode, first time the transcode will be executed in the plex server, when the DO is ready, the video will stop and you will click again to play the video, but this time will be transcoded by DO. I have a proof of concept of using a fake temporal video saying something like "wait we are loading your video", but plex make a mess with the video duration. We can discuss to diferent solution guys.

Here i give you a docker-compose to avoid some of your time trying to figure out how it works

PlexMainServer:
  environment:
    VERSION: plexpass
  image: segator/plex
  volumes:
  #volumes where we have moves tvshows homemade videos music etc..
  - /server/media/movies:/data/movies:ro
  - /server/media/tvshows:/data/tvshows:ro
  #Volume where we save our plex database
  - /server/docker/plex/config/:/config
    
  #Volume used to store temporal files generated by transcoder (we must configure plex from the web ui to save temporals to /transcode)
  - /server/docker/plex/transcode:/transcode
  net: host
plexTranscoderOrchestrator:
  ports:
  - 8800:8800/tcp
  - 111:111/udp
  - 2049:2049/tcp
  - 111:111/tcp
  - 15300:15300/tcp
  - 15300:15300/udp
  environment:  
    #Domain used by DigitalOcean to transfer transcoded video to your Plex Server
    PUBLIC_DOMAIN: my.public.domain.com
    #Port used by DigitalOcean to transfer transcoded video to your Plex Server
    PLEX_PUBLIC_PORT: '32400'
    #this is where you want to deploy DigitalOcean machines(use the nearest from your plex server location)
    DO_REGION: ams2 
    #This is your digitalOcean admin token
    DO_TOKEN: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    #This is the ssh key used by the DO VM to autoconnect using SSH 
    SSH_PUB_KEY_PATH: /config/.ssh/id_rsa.pub
    #same as PLEX_PUBLIC_PORT but this port is for DO machines notification of their current status
    ORCHESTRATOR_PUBLIC_PORT: '8800'
    #Where is the movies tvshows
    MEDIA_DIRECTORY: /data
    #In seconds, when the transcoder it's not used in this time, will be destroyed
    TRANSCODER_TIMEOUT: 600
  image: segator/plextranscoderorchestrator
  links:
  - PlexMainServer:plex
  privileged: true
  volumes_from:
  - PlexMainServer

plexremotetranscoderdocker's People

Contributors

segator avatar

Watchers

James Cloos 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.