Can do it in compositor, using an UV pass to distort the images and some ID masks to mix the render layers from different scenes... you can lower the samples for the scenes that will be seen in monitors, and will have faster renders.
Here's a simple test I just did, never tried something like this before so there may be some mistakes and things to improve. I unwrapped the tv screens and assigned materials with different IDs to use as masks.
https://dl.dropboxusercontent.com/u/16486113/Blender/archivos/temp/MONITORS.blendhttps://www.dropbox.com/s/nepv0ukolw9r0od/MONITORS.blend?dl=1
edit: had to use the unwrapping to correct aspect ratio of images a bit
and more info:
- you use different scenes for each camera
- in main scene you activate UV pass and Material Index pass
- UV pass allow you to distort an image to match the geometry
- ID material pass allows to isolate different monitor screens
- but you need to unwrap the tv screens and use different materials for each
- in compositor you have a render layer for each scene
- use UV pass from main scene to distort the other render layers
- and use ID materials to set the alpha for the other render layers
- then mix the layers, could even use compositor blur or depth of field
but easier is to just look at the blend... I guess it can be done in other ways, ID masks for alpha is not that good; also multiview was meant to support multiple custom cameras at some point -I think- that would allow to have just one scene to feed the compositor
And a more conventional setup works too... you can use the File Output node in compositor to export the other scenes, and load those Image Sequences as textures in cycles, all you need to do is set offset to -1 in texture nodes... there's a 1 frame lag though, and the first frame won't have any textures -and I had a couple of crashes-
https://dl.dropboxusercontent.com/u/16486113/Blender/archivos/temp/MONITORS_SEC.blendhttps://www.dropbox.com/s/j83imtyszl6xvik/MONITORS_SEC.blend?dl=1