Quick answer
Can a VPS transcode video with FFmpeg without a GPU?
Yes. FFmpeg transcodes video on a VPS without a GPU through its CPU encoders, libx264, libx265 and SVT-AV1, for H.264, HEVC and AV1. A Cobaltfell VPS has no GPU, and FFmpeg picks its thread count from the vCPU by itself. The preset sets the pace: x264's own header says ultrafast is 100 times faster than placebo (checked 2 November 2026).
Which encoders run on a CPU, and what do presets change?
A preset is a speed-for-size trade: a slower preset spends more CPU to make a smaller file at the same quality. Every FFmpeg software encoder has one. Quality itself is set separately, with CRF. Pick the quality first, then the slowest preset the deadline allows.
| Codec | FFmpeg encoder | Presets, fastest to slowest | What the project says |
|---|---|---|---|
| H.264 | libx264 | ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo | Speed scales dramatically across presets; ultrafast is a full 100 times faster than placebo |
| HEVC (H.265) | libx265 | the same ten names; medium is the default | Faster presets take shortcuts at the expense of quality and compression efficiency |
| AV1 | libsvtav1 | numbered 13 (fastest) down to 0 (slowest); SVT-AV1's own default is 8 | Higher presets are faster but lower quality |
H.264 at a medium preset is the safe choice for broad playback. HEVC and AV1 give smaller files for the same quality and cost more CPU per frame, which is why they belong on the larger plans.
How does FFmpeg use the vCPU of a VPS?
FFmpeg and its encoders size their threads from the CPU count they detect, which on a VPS is the vCPU count. The generic threads option defaults to auto, and -filter_threads (scaling, overlays and other filters) defaults to the number of available CPUs. x265 builds its own thread pools, one per NUMA node, sized from the CPU count, and runs wavefront parallel processing by default; its documentation puts the compression cost of WPP below 1% in most tests.
That default is right for one encode at a time. Several encodes in parallel would each try to use every vCPU and spend their time switching instead of encoding. Split the threads by hand: on Fell 8, two jobs with -threads 4 each, or four jobs with -threads 2. The thread-versus-core rule is explained in is a dedicated vCPU a core or a thread.
A single encode does not scale forever either. Frame and slice threading have limits tied to the resolution, so a 720p file gains less from 16 threads than a 4K file does.
What do dedicated cores change for a long encode?
An encode is CPU at 100% for as long as the file lasts, the load profile shared plans are written to stop. According to Cobaltfell's survey of 2 November 2026, 29 of the 51 hosts that take crypto without an ID check sell no plan whose CPU they call dedicated. Two of them put a limit in writing: Spartan Host's terms forbid using more than 50% of the allocated cores for more than one hour, and Advin Servers' fair-use policy caps CPU use at 75%. A batch of films trips both. The general case is laid out in what is the difference between a shared and a dedicated vCPU.
At Cobaltfell: Full load is allowed for as long as your work needs it: no CPU credits, no burst window and no throttling after some minutes at 100%. A vCPU is one hardware thread of the host processor. Yours are pinned one to one to your VPS and never lent to another customer, and the two threads of a physical core stay together, so every 2 vCPU make one whole core that no neighbour shares. With no neighbour taking cycles, the speed= figure FFmpeg prints holds from the first minute of a batch to the last, so a queue's duration can be worked out in advance.
Video is large, so disk and traffic count as much as cores. Source and output share the plan's NVMe (NVMe storage on every plan): Fell 8 holds 320 GB NVMe and Fell 16 640 GB NVMe. Each VPS gets one IPv4 address and an IPv6 /64 on a 1 Gbit/s port. The monthly traffic of your plan counts outgoing data only, and going past it never adds a charge by itself.
How do I time an encode on a VPS before committing?
Encode one minute of the real source with each candidate setting and read the speed= value: 1x is real time, 2x is twice as fast. -f null - throws the output away, so the test measures the encoder and not the disk. -benchmark adds the CPU time used at the end.
# which software encoders this ffmpeg build has
ffmpeg -hide_banner -encoders | grep -E 'libx264|libx265|libsvtav1'
# 60 seconds of your own file, video only, output discarded
ffmpeg -hide_banner -benchmark -t 60 -i input.mp4 -an -c:v libx264 -preset medium -crf 23 -f null -
ffmpeg -hide_banner -benchmark -t 60 -i input.mp4 -an -c:v libx265 -preset medium -crf 28 -f null -
ffmpeg -hide_banner -benchmark -t 60 -i input.mp4 -an -c:v libsvtav1 -preset 8 -crf 35 -f null -
# the same H.264 test held to 4 threads, to plan parallel jobs
ffmpeg -hide_banner -benchmark -t 60 -i input.mp4 -an -c:v libx264 -preset medium -crf 23 -threads 4 -f null -Which plan fits which transcoding job?
The work to finish per hour decides the plan, not a single file. The table gives starting points, not timings: Our own YABS and Geekbench 6 results, together with the steal time we measure, will be published with their date once our first test machine is delivered. Until then we quote no performance figure of our own. Prices for each plan are listed under how much a dedicated-core VPS costs.
Other hosts that sell dedicated cores for long encodes are ranked in which is the best dedicated CPU VPS provider in 2026.
| Plan | vCPU | NVMe | Typical transcoding work |
|---|---|---|---|
| Fell 2 | 2 | 80 GB NVMe | Occasional H.264 conversions, thumbnails, audio work and remuxing with -c copy, which barely touches the CPU |
| Fell 4 | 4 | 160 GB NVMe | A small queue of H.264 jobs, or one HEVC encode at a fast preset |
| Fell 8 | 8 | 320 GB NVMe | A steady batch queue, two to four parallel H.264 jobs, or HEVC and AV1 at medium presets |
| Fell 16 | 16 | 640 GB NVMe | Slow presets for archive-grade files, AV1 at scale, or several 4K sources at once |
When is a GPU the better tool for video?
A GPU is the better tool for many simultaneous live streams in real time, or when encode throughput matters more than the smallest possible file. Hardware encoders such as NVENC, Quick Sync and VAAPI run on a graphics card or an integrated GPU, and FFmpeg uses them only when that hardware is present. A Cobaltfell VPS has none, so its strength is software encoding: slower per stream, with the full set of presets and the compression efficiency of the software encoders.
For on-demand libraries, overnight batches and archives, CPU encoding on dedicated cores is the simpler setup. For a live platform with dozens of simultaneous channels, GPU hardware is the right purchase. The same CPU-or-GPU question for language models is answered in can I run Ollama on a VPS without a GPU.
What other questions do people ask about FFmpeg on a VPS?
Can a VPS run a live streaming server with transcoding?
For a few streams, yes. Run one test like the ones above at the target resolution and keep only settings whose speed= stays well above 1x: a single 1x encode leaves no margin for a busy scene.
Can an encode queue run at full load for days?
At Cobaltfell, yes. Full load is allowed for as long as your work needs it: no CPU credits, no burst window and no throttling after some minutes at 100%. The one excluded CPU-heavy use: Mining any cryptocurrency is not allowed, on any plan and with any software. Your own heavy CPU work, such as builds, encoding, inference or databases, may run at full load, and a node that only validates a blockchain is not mining.
Is uploading large source files counted as traffic?
Not at Cobaltfell. Each VPS gets one IPv4 address and an IPv6 /64 on a 1 Gbit/s port. The monthly traffic of your plan counts outgoing data only, and going past it never adds a charge by itself. Incoming files cost nothing; only what the VPS sends out is counted.
Does the distribution's ffmpeg package include x265 and SVT-AV1?
ffmpeg -hide_banner -encoders lists exactly what a build supports. The images offered are Debian 13, Debian 12, Ubuntu 24.04 LTS, AlmaLinux 10, Rocky Linux 10; when an encoder is missing, a static FFmpeg build or the distribution's backports provide it.
Will Cobaltfell publish encoding speeds per plan?
Our own YABS and Geekbench 6 results, together with the steal time we measure, will be published with their date once our first test machine is delivered. Until then we quote no performance figure of our own. Encoding speed depends so much on source, codec and preset that a one-minute test on your own material remains the better guide.
Sources (8)
- FFmpeg codecs documentation (threads, libx264, libx265, libsvtav1) — FFmpeg (checked 2026-11-02)
- ffmpeg documentation (-filter_threads) — FFmpeg (checked 2026-11-02)
- x264.h: preset names and speed note (mirror of the VideoLAN x264 repository) — VideoLAN x264 (checked 2026-11-02)
- x265 presets — x265 project (checked 2026-11-02)
- x265 threading — x265 project (checked 2026-11-02)
- SVT-AV1 parameters — Alliance for Open Media (checked 2026-11-02)
- Spartan Host terms of service spartanhost.org/tos — Spartan Host (checked 2026-11-02)
- Advin Servers fair use policy docs.advinservers.com/policies/fair-use — Advin Servers (checked 2026-11-02)