Note that read/write can be given semantics that mmap + memory-mapped access doesn't provide. (Block until you get an I frame, then capture a scaled-down picture with no tearing artifacts, all in a single read() syscall ...)