Why not show the video as "uploaded" to the user posting the video (and playback from a local copy), and then publish in the background to other users? Latency of 0 :)
If the user then copies the URL of their post and sends it to another user the other user will not be able to view it.
It would also not be noticeable for the user if an error occurs while processing the video.