
FFmpeg HDR to SDR: Stop iPhone Uploads Coming Out Gray
FFmpeg HDR to SDR needs an explicit tone map. Detect HLG/PQ at ingest with ffprobe, then use the zscale+tonemap chain so iPhone clips stop shipping gray.
Learn about video processing, FFmpeg workflows, automation, and scaling tips.

FFmpeg HDR to SDR needs an explicit tone map. Detect HLG/PQ at ingest with ffprobe, then use the zscale+tonemap chain so iPhone clips stop shipping gray.

Trim video by timestamp with FFmpeg, or send the cut list to a trim video by timestamp API: real commands, the keyframe trap, and no encoder box to run.

Google Drive video automation breaks when n8n pulls a 1 GB file into memory. Pass the Drive URL to a video API, take a webhook, write the result back.

Auto translate subtitles video pipelines break at the burn-in, not the translation. Transcribe once, translate the SRT, render one hardsub per language.

FFmpeg's "unknown encoder libx264" error means your binary was compiled without --enable-libx264, not that FFmpeg is broken. Diagnose it in one command.

The FFmpeg fontconfig error is a warning, not a failure: the job exits 0 and ships the wrong font. Fix it in Alpine, Debian slim, and distroless images.

FFmpeg invalid data found when processing input rarely means a corrupt video. The real causes on files you didn't create, plus a copy-paste ffprobe guard.

MP4 not playing in browser? VLC decodes almost anything, hiding the four real breakers: pixel format, H.264 profile/level, moov placement, audio codec.

FFmpeg NVENC is faster than libx264, but only if the whole filter graph stays on the GPU. The QP-vs-CRF trap, session limits, and the real per-job cost math.

FFmpeg error messages, not exit codes, tell you what broke: a triage table of exact stderr strings, the cause in a pipeline, the fix, and retry or reject.