I think NDI ( network device interface ) would be an ideal candidate for your purposes and I doubt that you would get better results with anything hand-rolled on a LAN with stable bandwidth.
I have an initial implementation that wraps the basic functionality into a Cinder block here but the SDK has been updated since then which means that it would need some small tweaking for getting it up and running again. That said I know that @num3ric has been working with it on Windows and I think he has kept it up-to-date with the latest SDK changes. You can find his fork here.
You can see it in action here :
This is sender running on OSX and receiver running on a Linux VM. For some more info you can also check the original post I made for Cinder-NDI here .