You are right, those are quite general questions
1: Just wondering, why would the recordings need to be in the same file? Java has quite elegant data stream handling, so i suppose it'd suite the need quite well. How you access the camera streams - do you have some kind of api/driver directly to the stream or are the cameras saving their feed to files and you'd access the video files and not the video stream?
2: Java is nowadays quite efficient, if a bit memory intensive. Depends more on the hardware that the platform has. HDD speed, CPU speed and RAM amount mainly. There might be some options with handling the videos with GPU if you need to process it somehow ( jcuda.org - Java bindings for CUDA
and jocl.org - Java bindings for OpenCL
for example ).
3: Java Virtual Machine fully supports concurrency. Here's a short paper about it: http://www.cs.hut.fi/u/tlilja/multic..._multicore.pdf
Sorry about the vague answers, i did my best
But to sum it up, my opinion is that Java implementation will do as well on the job as any other language implementation.
Best of luck to your project