Skip to content

AVideo Platform Hardware Requirements

Daniel Neto edited this page Aug 18, 2026 · 32 revisions

AVideo Hardware and Server Requirements

AVideo can grow from a small private site to a large video network. There is no per-viewer or per-stream license ceiling in the platform; the server, bandwidth, and services you choose determine practical capacity.

Before choosing a server

Answer these questions:

  1. Will this server encode uploaded videos?
  2. Will it transcode live streams into multiple qualities?
  3. How many people may watch at the same time?
  4. What bitrate will viewers receive?
  5. Will media stay on this server or use external storage/CDN?
  6. How much content will be retained?

If you do not know yet, begin with the recommended small-production setup below. You can add Encoders, Live servers, CDN delivery, and remote storage as demand grows.

VPS, dedicated server, or managed delivery?

Choice Best for Advantage Watch for
VPS Testing and smaller sites with predictable work Quick to create and resize Shared CPU/storage performance and transfer limits vary by provider
Dedicated server Heavy encoding, live transcoding, or consistent local performance Dedicated CPU, RAM, and disks You manage hardware capacity, failures, bandwidth, and growth
Separate private Encoder Upload-heavy sites Encoding cannot slow the public website as easily Another server/connection to secure and monitor
AVideo CDN Large or geographically distributed audiences Edge delivery and less repeated origin bandwidth Usage cost and correct cache/access configuration
AVideo CDN Storage Large or fast-growing libraries Managed remote storage with integrated delivery Plan transfer/replication choices and keep account credit available

Practical starting points

These are planning examples, not guarantees:

Use Reasonable starting point Main limitation
Testing or a very small private site 2–4 CPU cores, 4–8 GB RAM, SSD Not suitable for many simultaneous encoding jobs
Small production site with uploads 4–8 CPU cores, 8–16 GB RAM, SSD Encoding speed and media growth
Upload-heavy or live-transcoding site 8+ modern CPU cores, 16+ GB RAM, fast SSD CPU, temporary disk, and cooling/throttling
Large audience Separate web, encoding, live, database, and AVideo CDN/CDN Storage roles CDN delivery removes the need for one server to carry every viewer

Storage requirements depend on the number of videos, duration, resolutions, HLS output, original-file retention, thumbnails, and backups. Do not size storage from the upload file alone; one source video can produce several output files.

Earlier production reference configuration

The former hardware page described an administrator's working reference server with 8 CPU cores, 16 GB RAM, and a 450 GB SSD. This is still useful as a concrete example of a balanced single server, but it is not a universal requirement or a promise of a specific viewer count.

Resource Earlier reference What changes the requirement
CPU 8 cores Codec, number of resolutions, simultaneous encodes, and live transcoding
Memory 16 GB PHP/database load, job concurrency, upload flow, and FFmpeg profiles
Disk 450 GB SSD Library size, HLS/MP4 choice, temporary files, originals, and backup policy

Historical minimum values and how to use them

The former page gave 4 CPU cores, 4 GB RAM, and 120 GB disk as a simple minimum and recommended 8 GB RAM for better processing. Those values are useful as historical orientation, not a guarantee that a production workload fits.

Old rule/example What it was trying to prevent Current interpretation
4 cores / 4 GB RAM / 120 GB disk Installing video software on a tiny web-hosting plan Use the practical workload table above and monitor real CPU, memory, disk, and queue behavior
At least 2 CPU cores An older basic CPU floor for encoding Two cores may run a small test, but modern production sizing should use the workload table and measured encoding time
Maximum upload about 50% of RAM A historical upload path could copy large data through PHP memory Relevant to older/direct flows and memory-exhaustion errors, but not a universal modern upload formula
4 GB upload needs about 8 GB RAM Example based on that 50% rule Chunked upload/Encoder/proxy design can behave differently; test the actual route
Keep about 10× the largest source free for MP4 processing Original + temporary + several qualities can coexist A useful planning margin when exact profiles are unknown
Keep about 20× for HLS in the worst example HLS qualities, thousands of segments, archives, and temporary copies need more room Measure your selected HLS profiles and simultaneous jobs before production

For example, the old guide suggested at least 50 GB free for one 5 GB 4K MP4 job and 100 GB for the comparable HLS job. Treat this as a conservative planning example, then replace it with measurements from your own Encoder profile.

Software baseline

  • A currently supported Ubuntu LTS release is recommended for a new installation.
  • PHP 8.1 or later is required by the current AVideo codebase.
  • A supported MySQL-compatible database and the PHP MySQL extension are required.
  • Apache with URL rewriting is the standard documented web-server setup.
  • FFmpeg is required for video/audio processing.
  • HTTPS is strongly recommended and required by many browser features.

Use the Ubuntu 24.x installation guide for a new server. Control panels such as cPanel or Plesk may change paths, users, PHP versions, and web-server configuration; generic commands may not apply to them.

Network ports to plan

Open only the ports used by your design. Exact live/WebRTC ports depend on the installed service.

Purpose Common port Who normally needs access
HTTPS website and media 443/TCP Public viewers, Encoder, integrations
HTTP redirect/certificate validation 80/TCP Public internet when required
SSH administration 22/TCP or your chosen port Restricted administrator addresses where possible
RTMP live ingest 1935/TCP Authorized broadcasters
Live-server HTTP, when used Commonly 8080/TCP Normally a private origin/reverse-proxy path; expose publicly only when the design requires it
Live-server HTTPS, when used Commonly 8443/TCP Viewers/proxy only when this port is part of the configured public HLS route
Socket/WebSocket direct endpoint Commonly 2053/TCP Viewers only when not hidden behind an HTTPS reverse proxy
Database Commonly 3306/TCP Private application/database network only; never public by default

WebRTC can require additional TCP/UDP signaling and media ranges. Follow the WebRTC plugin documentation and firewall design rather than opening a broad range without a reason.

What each resource affects

CPU

CPU determines encoding and live-transcoding speed. Creating more resolutions uses more CPU. A faster CPU does not increase viewer delivery capacity if the network is already full.

Memory

Memory is used by PHP, the database, FFmpeg jobs, caching, and the operating system. Large or concurrent encoding jobs can require substantially more memory than ordinary page views.

Disk

Use SSD storage for the application, database, cache, and active encoding workspace. Monitor both free bytes and free inodes. Keep backups on separate storage; a backup on the same disk does not protect against disk failure.

Network bandwidth

Viewer capacity is usually limited by outbound bandwidth when media is served directly.

A rough estimate is:

required outbound Mbps ≈ simultaneous viewers × average delivered bitrate in Mbps

For example, 100 viewers receiving an average 3 Mbps stream need about 300 Mbps before protocol overhead and other site traffic. A “1 Gbps” port does not guarantee a sustained 1 Gbps allowance; check the hosting plan's transfer and fair-use limits.

AVideo CDN and CDN Storage

AVideo CDN can serve repeated media requests away from the origin. CDN Storage adds managed remote capacity and integrated CDN delivery.

Product The problem it solves Main advantage
AVideo CDN One server cannot efficiently deliver every page, video, and live segment to a large audience Faster global delivery and less origin bandwidth
AVideo CDN Storage Local disks keep filling as the library grows Managed remote video storage with integrated delivery
VideoHLS One quality cannot fit every internet connection Adaptive quality for smoother viewing

Live-stream capacity

AVideo supports unlimited simultaneous live streams and unlimited viewers at the software level. This is a strong advantage: you can keep expanding without a fixed per-stream platform limit. The real capacity comes from input bitrate, transcoding, CPU speed, disk speed, and outbound bandwidth.

For a large live event, combine the Live plugin with AVideo CDN. Test the intended quality and audience before the event, then keep extra capacity for a sudden surge.

The older guide reported a real-world planning experience of approximately 100 simultaneous viewers on a 100 Mbps connection and 1,000 viewers on a 1 Gbps connection when adaptive live qualities were used. That implies an average delivery near 1 Mbps per viewer and does not apply to every broadcast. A 5 Mbps 1080p stream, for example, fits far fewer viewers. Use the actual bitrate table in the Live plugin guide, leave overhead capacity, and load-test before selling an audience limit.

See Adaptive Bitrates on Livestream and the Live Plugin guide.

When to separate services

Consider separate servers or managed services when:

  • Encoding makes the website slow.
  • Live transcoding competes with uploads.
  • The database or media disk is a single point of failure.
  • Viewer traffic approaches the server's sustained network limit.
  • Maintenance on one component must not stop everything else.

Measure first. Separating services adds cost and more connections to configure and monitor.

Real 4K storage example

The following screenshots are from an earlier 4K test. The interface may look different today, but the example still shows why temporary working space matters.

Original 4K sample and Encoder storage use

One 40 MB source produced several qualities:

The two-minute source generated up to seven qualities in that test: 2160p, 1440p, 1080p, 720p, 480p, 360p, and 240p.

Output Final size in this test Final/source ratio Approximate space needed while processing Processing/source ratio Approximate final size per minute
MP4 qualities 136 MB 3.4× 352 MB 8.8× About 70 MB/minute
HLS qualities 235 MB 5.8× 761 MB 19× About 117 MB/minute

The HLS working total included the generated qualities, original/chunked temporary data, and an archive/transfer file used by that workflow. These exact temporary files can differ in a current release, but the example explains why “my source is only 40 MB” is not enough for disk planning.

The earlier guide showed the working-space calculation in more detail:

Workflow Streamer-side files Encoder-side files Total free space needed during the test
MP4 About 136 MB of finished qualities About 136 MB of qualities + 40 MB chunked upload + 40 MB temporary original 352 MB
HLS About 235 MB of qualities + 223 MB archive/transfer file About 235 MB of qualities + 40 MB chunked upload + 40 MB temporary original + 223 MB archive/transfer file 761 MB

The same file can briefly exist in more than one place. This is why you must plan for peak processing space, not only the final library size.

Encoded MP4 and HLS size comparison

You can reduce disk and encoding work by selecting only the resolutions your audience needs in CustomizeAdvanced.

Choose the video resolutions to encode

As the site grows, separate the Streamer, Encoder, Live server, storage, and database so each part can scale independently.

Example of a separated AVideo server architecture

Common sizing questions

How many viewers fit on my server? Divide usable outbound Mbps by the average delivered video bitrate, then leave capacity for overhead and other traffic. CPU is important for encoding/transcoding, but network is usually the direct-delivery limit.

Does adding RAM make encoding faster? It prevents memory pressure, but FFmpeg speed is usually driven more by CPU/GPU, the selected codec/qualities, and storage performance after enough RAM is available.

How much disk does one upload need? More than the source size. Allow room for the original, temporary work, thumbnails, MP4/HLS outputs, and backups. The 4K example above shows how one 40 MB input produced much larger working/output totals.

Can the Streamer and Encoder share one server? Yes for a small site, but an encoding job can compete with PHP, database, and playback. Separate them when uploads affect visitor performance.

What should I check when traffic grows suddenly? Measure origin bandwidth, CPU, storage, and cache behavior. Consider AVideo CDN for delivery and CDN Storage when local disk growth is also a problem.

Clone this wiki locally