
Founder
Abdelrahman Essawy
Founder of Rendobar. Builds the media processing platform behind the FFmpeg, compose, captions, and generation APIs.
Posts
Video APIs that deliver output to your own bucket
Compare 13 video processing APIs on delivering output to a bucket you own. Three can write to S3 through an IAM role, and five document no delivery at all.
Give a service S3 access without an access key
Send job outputs to an S3 bucket through an IAM role instead of an access key. In our test the role connected 32 seconds after its stack started.
Add video processing to n8n Cloud
Run FFmpeg, compression and captions on n8n Cloud with the verified Rendobar node, installed from the nodes panel, with long jobs parked instead of polled.
Why S3 presigned URLs expire early
Read why an S3 presigned URL stops working before its expiry time. Signed with a 1-hour expiry by a 15-minute role session, ours failed once the session ended.
Generate a video thumbnail when a file lands in S3
Generate a thumbnail for every video that lands in S3. Our test clip's first frame was almost black, and a 320 px JPEG of a later frame came to 5,970 bytes.
Process video from an S3 bucket with FFmpeg
Process video stored in S3 past Lambda's 900-second limit. One FFmpeg job on our API ran for 1,002 seconds end to end and billed $1.02 for the run.
Save FFmpeg output to an S3 bucket
Send FFmpeg output to an S3 bucket three ways. A pipe-safe fragmented MP4 came out 240 bytes smaller than the default MP4 on the same measured encode.
Add video processing to Activepieces
Run transcodes, captions and image generation from an Activepieces flow. A long job parks on a waitpoint instead of holding a worker open while it runs.
Custom fonts in a video API
Find out what happens when a video API cannot find your font. 30 of 46 production jobs asked for a typeface that was not installed and were billed anyway.
Opus vs AAC vs MP3 vs FLAC
Compare Opus, AAC, MP3 and FLAC on one file. Opus at 64k beat AAC at 128k on size, and one codec missed its own nominal bitrate by 16 percent.
AV1 vs H.264 VMAF compared
Compare H.264, HEVC and AV1 held to an identical byte budget and scored with VMAF. AV1 delivered 84.8 against H.264's 64.3 for the same 146 KB.
AV1 vs VP9 vs HEVC vs H.264
Compare four video codecs measured on one file, with encode times, output sizes and cost. SVT-AV1 beat VP9 on every axis, which settles a common argument.
AVIF vs WebP vs JPEG compared
Compare AVIF, WebP, JPEG and PNG encoded from one identical frame. AVIF came out 43 percent smaller than JPEG and 45 percent smaller than WebP.
How to compress video to a target size
Convert a size target into encoder settings, measured over 120 jobs and 667 probe encodes. Median compression was only 1.41x and 20 jobs refused to encode.
Compress video to a target size
See what happens when a compression job decides re-encoding would make the file bigger. Three of seventeen cases passed the original through untouched.
FFmpeg CRF vs bitrate
Compare constant quality against target bitrate in FFmpeg. ABR overshot its own target by 10 percent, and CRF with a VBV cap produced the smallest file.
FFmpeg API pricing compared
Compare 6 FFmpeg API services on billing unit and real cost, normalised against 1,770 billed jobs that came to $14.16 across five months of production use.
How to burn subtitles into a video
Render SRT or ASS captions permanently into the picture with FFmpeg, including the escaping rule that broke all 8 raw subtitle attempts in our job archive.
FFmpeg CRF explained and measured
Compare FFmpeg CRF from 18 to 32 on one file. Every 3 points of CRF removed about a fifth of the bytes, and the encode time barely moved at all.
FFmpeg encoding settings compared
Compare every FFmpeg encoding setting that changes output size, measured on one file: preset, CRF, tune, keyframe interval, pixel format, threads and scaler.
Common FFmpeg errors and what they mean
Read the failure distribution from 208 failed video jobs. More died on an unreachable input URL than on a bad FFmpeg command, and one message caused 25 of them.
FFmpeg keyframe interval compared
Compare FFmpeg keyframe intervals from every frame to 250. A 1-second GOP cost 35 percent more bytes than the default, and it barely changed encode time.
FFmpeg lanczos vs bicubic scaling
Compare FFmpeg scaling algorithms on the same downscale. Encode time varied by under 3 percent while output size varied by 66 percent, so the flag is free.
FFmpeg threads benchmark
Compare FFmpeg thread counts from 1 to 8, five runs each. Eight threads gave a 3x speedup rather than 8x, and pinning threads made the benchmark reproducible.
FFmpeg tune presets compared
Compare all seven x264 -tune values on one clip. zerolatency produced 2.2x the bytes and fastdecode 1.7x, which is not what a performance flag implies.
How to add a watermark with FFmpeg
Add an image or text watermark to a video, with copyable corner positions and why 21 of 40 overlay jobs in our archive failed outright.
Common ffprobe commands compared
Compare 25 ffprobe command shapes on median run time and billed cost, measured across 213 real probe jobs run on production infrastructure.
Validate video uploads with ffprobe
Probe an uploaded file to confirm it is real media before you pay to encode it. Measured on 213 jobs, including 3 named .mp4 that were not video at all.
How to get video duration with ffprobe
Read a video's duration with ffprobe when three fields disagree. Measured across 200 probe jobs, showing which field to trust and where the gap hits 493 ms.
Free FFmpeg API options compared
Compare 6 free FFmpeg API tiers on what they let you run before payment, including runtime ceilings, card checks, and which one watermarks your output.
FFmpeg benchmark variance
Read what happens when one FFmpeg command runs ten times. Output was byte-identical, encode time varied 2.13x, and one of our own claims did not survive.
Give an n8n AI Agent real video tools
Build an n8n AI Agent that transcodes video, reads its own job logs, and checks its balance before spending credits, with no glue code to write.
NVENC vs libx264 compared
Compare NVENC hardware encoding against libx264 on the same clip. The GPU job cost far less and produced a file twice the size, which is the real trade.
SVT-AV1 presets compared
Compare SVT-AV1 speed presets 4 to 12, three runs each. Preset 12 was both faster and smaller than preset 10, so one rung of the dial is strictly dominated.
Transcode ladder cost per rung
Compare every rung of a 1080p to 240p transcode ladder. The top rung cost more than the other four combined, and on a 720p source it adds nothing.
Video codec comparison, measured
Compare AV1, HEVC, VP9 and H.264 on size, speed, cost and VMAF quality, measured on one file. AV1 delivered 20 more VMAF points at an identical byte budget.
Video processing API tools compared
Compare video processing tools across 4 categories, from $0.0025 per FFmpeg job to $0.0075 per normalized minute on AWS MediaConvert, and pick by shape first.
How long video transcoding takes
Read the real latency breakdown from 1,770 completed jobs. The encode ran a median 861 ms while waiting to start took 3,626 ms, which is 57% of total time.
FFmpeg x264 presets compared
Compare all nine x264 presets on one file with real encode times and output sizes. The slower presets are not monotonically smaller, and one is backwards.
FFmpeg yuv420p vs yuv444p
Compare chroma subsampling in FFmpeg. yuv420p was the smallest and the fastest, and the higher formats cost up to 65 percent more encode time for nothing.
FFmpeg fits on Vercel. Size isn't the problem
Read the measured numbers behind FFmpeg on Vercel. The binary is 76 MB against a 250 MB cap, and the 4.5 MB body limit is what actually stops you.
Parsing ffprobe output is harder than it looks
Read a media file's metadata with ffprobe, then watch the traps: rotation, HDR, fake image durations, missing channel layouts, and cover art as video.
Best FFmpeg API in 2026, compared
Compare 8 FFmpeg APIs on raw command support, billing unit, free tier and agent access, with entry plans from $12 to $49 verified in September 2026.
Why ffmpeg.wasm can't run in a Cloudflare Worker
Read why ffmpeg.wasm can't run in a standard Cloudflare Worker. workerd blocks runtime WASM compilation, and the 31 MB core barely survives gzip.
Everything shipped is dated in the changelog.
