This is a pretty good use case for DreamObjects. Basically, you'll want to upload the videos to a bucket, and ensure that each object (video) in the bucket is set to a "private" ACL, so that it cannot be read publicly.
Then, you can use the PHP libraries for accessing DreamObjects to generate temporary URLs to access videos on a one-by-one basis. Some documentation and examples for accessing DreamObjects with PHP are available here: http://docs.dreamobjects.net/s3-examples/php.html
The documentation includes an example for generating these temporary, signed URLs. Here is what it looks like:
my $secret_url = $Connection->get_object_url('my-bucket-name', 'secret_plans.txt', '1 hour');
This would generate a URL for temporary access to a specific object, named 'secret_plans.txt', inside a bucket named 'my-bucket-name', with access for one hour.
As for using with WordPress, I am not too familiar with the WordPress video tools, but I am guessing you'd be able to use one of these signed URLs as a "source" for streaming the video, as long as its in the right format.
If you have videos are meant to be viewed publicly, I'd encourage you to enable DreamSpeed CDN on those videos, to accelerate the delivery of the content. For the private videos, you're better off streaming directly from DreamObjects.