You are double opening an ObjectOutputStream on the same socket in the Server class which is causing special headers to be sent twice.
1: openSockets
last line outputToClient = new ObjectOutputStream(clientSocket.getOutputStream());
2: writeToSocket
first line outputToClient = new ObjectOutputStream(clientSocket.getOutputStream());
Remove whichever one you want and it should work just fine.
As for the nullpointer you are now receiving I have a feeling that video is null in the client. In the code you have posted that would make sense because in the server you never create a video array and as such the client is just receiving null.