
FFmpeg vsync Is Deprecated. -fps_mode Isn't a Drop-In Swap
FFmpeg vsync deprecated? Map -vsync 0/1/2/drop to -fps_mode, repeat it per output, pin CFR at the right pipeline stage. Plus pre-5.1 static-build fallbacks.
13 articles about troubleshooting.

FFmpeg vsync deprecated? Map -vsync 0/1/2/drop to -fps_mode, repeat it per output, pin CFR at the right pipeline stage. Plus pre-5.1 static-build fallbacks.

FFmpeg's "buffer queue overflow, dropping" warning means one input in your filter graph outruns another. Find the starving input and fix PTS and durations.

FFmpeg impossible to convert between the formats supported by the filter? Two branches of your graph disagree on pixel format. Fix it before the overlay.

"Filtering and streamcopy cannot be used together" means your filtergraph forces a decode. Keep -c copy where it counts by splitting codecs per stream.

An ffmpeg output file empty result is usually a warning, not an error: FFmpeg exits 0 with nothing encoded. Every cause, plus the ffprobe guard to catch it.

Your HEVC MP4 plays in VLC but not in Safari? The FFmpeg hvc1 tag fix is a metadata-only remux: one stream copy, done in seconds, with zero quality loss.

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'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.

FFmpeg audio out of sync is usually a variable-frame-rate source hitting a fixed -r. Detect VFR with ffprobe, then fix it with -fps_mode cfr and aresample.