Try using the Amazon S3 service, it got this quirks, but it makes sense when you are familiar with it.
Their API has bindings for reaching a temporary URL that are active at the specified time, so you can freely display the URL to the visitor because it will not work after 10 minutes or later.
This is almost a trivial attitude to php (about 15 lines of code), there are many examples on their forums, so you do not need to go from scratch and read the full documentation on how to achieve this.
What permission will you make before creating and showing links to it.
You can also look like it was from your domain, such as video.yourdomain.com, instead of the standard s3 URLs.
The last thing is cheap - we paid about $ 2 for a month of testing and deployment, when I downloaded 8 GB and downloaded it 3 times completely and initialized the download about 100 times. The person for whom I did this is so pleased with the price that he wants to move all of his downloadable media to s3.
Now, after reading everything that I wrote, it looks like commercial / spam, but I am so happy with the service, because earlier I encoded everything for audio files, and it took several days until everything worked fine, and it took a couple of hours to implement (in mostly get acquainted with the service).
esmajic
source share