why don't you stream it to the client when he is watching it in the viewer thingy, and when he presses download it downloads(duh).
i know that it will take a heck long time but it will be worth it(if you o it of course, you don't have to do it, its just a idea )