Swapchain format is B8G8R8A8_SRGB — vkCmdCopyImageToBuffer gives BGRA data. Was converting BGRA→RGBA in C# and telling FFmpeg 'rgba' — but SRGB data needs to stay as-is. Now: - No BGRA→RGBA swap in ReadCapturedBuffer - FFmpeg pixel_format=bgra (matches swapchain) - FFmpeg handles SRGB→yuv420p conversion correctly