I dont know exactly you arcitecture.
But: the pan is something that is important
for the client (looking, shoting)
Other players dont need to have the player super exact pan
every frame. So 5 updates per second are also enough.
To smooth this out, do the following:
send the pan 5 times per second to the server.
The server passes this to the other clients.
Other clients can smooth this pan on every frame
(given the previous and most current pan).
You can make a liniar interpolation for that, or whatever
other function you are comfortable with.
the most simple function, that works is:
other.pan = other.pan * 0.7 + other.newpan * 0.3;
which is calcualted every frame.
other.newpan is the actual pan the server sends.
You can play around with the numbers (the sum must be 1)
Its a very simple smoothing procedure.
Better is to use an interpolation, wich calculated
the average frames between panupdates, and then interpolates
between them. (be careful to adapt for jumps from 359 to 1 degree, else the playre makes a whole rotation)
When the player shoots, you should send the pan and tilt
at the time of shooting, so the server knows the exact
viewdirection at the time of shooting.