I have created a massive video course platform that stores the videos as MP4 and serves them by ranges (I use NGINX as reverse proxy).

The videos: When uploading the videos they are always converted to mp4, they are encoded in h264 and their size is limited so they are all optimized. NGINX also caches the videos to optimize speed (filling method using mp4 module).

My problem: sometimes when opening a video it takes a long time to play the video, despite the fact that 2 MB ranges are downloaded. Playback becomes slow and skipped despite very little traffic.

The droplet I am using is:
4GB - 2 vCPUs - 4TB - 80GB ($ 20 / mo)
SO: Ubuntu 18
Region: NYC3

Any suggestions on which droplet to use to optimize content delivery?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
1 answer

Hi @nadesarrolloweb,

I don’t believe the issue is with the Droplet itself. I’ll recommend using so sort of a caching service. For starters, install Opcache and PHP-FPM, they should help with the speed. After you’ve done that, I’ll recommend you to turn your attention to either memecache or redis. Me personally, I prefer Redis and another good thing about redis is that DigitalOcean have a Managed Solution for it :

Redis Product Documentation

https://www.digitalocean.com/docs/databases/redis/

Redis is an open source, in-memory, data structure server is frequently used as a distributed shared cache (in addition to being used as a message broker or database) because it enables true statelessness for an applications’ processes, while reducing duplication of data or requests to external data sources.

You’ll of course need to make your application work with Redis however it will significantly improve your performance.

Regards,
KDSys

  • Hi @KDSys , thank you for your cooperation!

    I’m using Node (not php) but the application logic is separate from the video delivery. I’m going to do more research on Opcache anyway, thank you!

    Currently my application uses Redis for queries to databases and others, do you think it gives the possibility to cache files or fragments?

    My theory was that it is the droplet because at times it happens and at times it does not, and the resources themselves seem to be ok, I suspect that it is the outgoing network itself

Submit an Answer