System Requirements for Video Uploads

Video uploads are an advanced experimental feature that comes with a number of strict technical requirements and limitations.

Video conversion requires an external cron job, advanced PHP functions and a special library. It is also prone to consume a lot of server resources.

Please do not enable this feature without a thorough understanding of what is required. To properly configure it, please talk to your hosting provider about the following details:

Powerful Server

As a rule of thumb, the video uploads and conversions will most likely not work in a shared server environment. Please make sure to be using a good dedicated machine.

FFmpeg 4.x

This library is absolutely necessary in order for the video conversion to work. PeepSo only supports FFmpeg version 4.0 or newer. Ask your hosting provider about this library and the executable path – you need to fill it in the Video Uploads preference pane.

Bear in mind, FFmpeg will not be detected if exec() or shell_exec() can’t run. Please read the section below.

PHP: exec() & shell_exec()

Make sure these two PHP functions are not blocked on your server. Your hosting provider should be able to give you all necessary information. If it is not possible to enable these functions on your server, the video uploads will not work.

PHP: other settings

Make sure that your server is able to receive big uploads. Ensure there are no configuration settings that prevent big files from being uploaded. PHP maximum execution time needs to be adjusted in order to accommodate bigger conversion jobs. PHP safe mode will most likely interfere with the conversion process.

Here are some PHP options worth looking into. There are no strict guidelines here, but as a rule of thumb if you want to process big uploads, you need to raise all other limits.

Option Suggestions
file_uploads 1 (enabled) – without it no file uploads will work
upload_max_filesize Lower limit means shorter videos, bigger limit means higher server load
post_max_size Should not be lower than the above value
max_execution_time The bigger files are allowed, the more time and the server needs to process them
max_input_time Should not be lower than the above value
memory_limit
Depends on file sizes and amount of users on your site, but if you want video conversion to work, this limit needs to be very generous.

Cron job

To avoid interfering with regular page loads, all videos uploaded by your users have to be converted with an external cron job (ie not the cron job tool built into WordPress itself). Depending on your server, you can use wget and/or curl. The cron will convert videos that are queued. Conversion process starting from the oldest to newest, one video in one process.

Please refer to example commands below.

Important: domain.com should be replaced with your own domain name. If your site is installed in a subfolder, replace domain.com with yourdomainname.com/subfolder/

wget example:

wget https://domain.com/?peepso_convert_videos_event > /dev/null

curl example

curl https://domain.com/?peepso_convert_videos_event > /dev/null

If you use AWS Elastic Transcoder Integration, you need to add additional cron job for uploading videos to s3.

wget example:

wget https://domain.com/?peepso_upload_videos_to_s3 > /dev/null

curl example

curl https://domain.com/?peepso_upload_videos_to_s3 > /dev/null

System Requirements

Multisite installation is not supported. To run PeepSo properly you will need to run it on a standalone WordPress installation.

To run PeepSo you will need to met following system requirements

Minimum System Requirement Recommended System Requirement
WordPress Version 5.5 Current
Sessions Enabled Enabled
RAM 128Mb 256Mb
PHP 7.3 7.4
MYSQL 5.6+ 5.6+
MariaDB 10.0+ 10.0+

Raw statement of requirements is only a guideline. How well your website and community perform depends on a number of factors, we’d recommend reading the following articles:

Recommended PHP libraries

  • ImageMagick
  • FFMPEG

In general, most hosting offers on the market have a good grasp on the server configuration. However, there might be cases where it’d best to check it all yourself or have a system administrator do it for you when it comes to optimizing site speed, server response times, etc. Here are articles we recommend you get yourself familiar with:

Server Software

Apache, Nginx, LiteSpeed or any web server that can run WordPress. We recommend LiteSpeed server.

Database

MySQL or MariaDB

Special Requirements

Some of the PeepSo features require specific system requirements to be met that are not often enabled by default and you will most likely have to contact hosting provider to see if they can be enabled

WP Site Health

PeepSo will warn you if your site does not meet our requirements or something might interfere with PeepSo. These requirements warning can be seen in WP Admin -> tools -> Site Health.

Disclaimer: Depending on the number of users who are involved in your community and the level of involvement, meaning how the community is used (images being posted, likes, new posts etc), you may need to increase the values mentioned as the Minimum System Requirements like ram or even processor speed.

A Word On Managed WP Hosting Solutions

In the last few years, Managed WP hosting gained massive increase in popularity because they are advertised as a solution that “Just works” and you don’t have to worry about anything.
In reality this is only true for clean WordPress installation, because Managed WP hosting will often install their own caching solution, or must-use plugin that can’t be disabled or debugged.
As soon as you start installing third-party plugins, you are increasing the chance for something to break on your “Managed” hosting and supplier of the service will often simply point the finger and refuse to help, leaving us in the dark because they won’t allow us to disable the plugins mentioned above.

Our simple recommendation is, if you can avoid “Managed WP” hosting offers, do it.
Sometimes is simply better to take additional time and, for example, setup the caching solution manually, rather than having one that you can’t control or turn off.