
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.
279 articles about ffmpeg.

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.

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.

FFmpeg's "Too many packets buffered for output stream" error is a stream mapping problem. Fix the cause first, then size max_muxing_queue_size without an OOM.

Non-monotonous DTS in output stream: what the warning means, when -fflags +genpts or -reset_timestamps 1 is right, and when only a CFR re-encode fixes it.