私はこれと同じ問題を抱えていましたが、Flowplayer cloudfrontsignedurl プラグインの ActionScript ソース コードを読んで答えを見つけました。
http://flash.flowplayer.org/documentation/developer/development-environment.html
private function _getUrl(clip:Clip):String {
var url:String = clip.getPreviousResolvedUrl(this);
var isRTMPStream:Boolean = url.toLowerCase().indexOf('mp4:') == 0;
if ( isRTMPStream )
//gets the url, minus the "mp4:" at the beginning
url = url.substr(4);
//gets the expires time in seconds
var expires:Number = Math.round((new Date()).getTime() / 1000 + _config.timeToLive);
//generate the signed url
var signedUrl:String = _signedUrlGenerator.signUrl(url, expires);
//put the 'mp4:' back on the front
if ( isRTMPStream )
signedUrl = 'mp4:'+ signedUrl;
return signedUrl;
}
URL に署名する前に "mp4:" プレフィックスを削除し、後で追加する方法に注意してください。
ここでは、Amazon の例に従いました: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CreateURL_PHP.html
次に、JavaScript 構成の関連部分は次のようになります。
var netConnectionUrl = "rtmpte://amazon_distribution_domain_name.cloudfront.net/cfx/st";
var clipUrl = "folder/folder/videofile.mp4";
$.post('/path/getSignedUrl.php', {clipUrl:clipUrl}, function(signedUrl){
clipUrl = 'mp4:'+signedUrl;
...then add netConnectionUrl and clipUrl to Flowplayer config...
});
URLに署名する前に、ユーザーがログインして製品を所有していることなどを確認できるように、Flowplayerプラグインの代わりにPHPを使用することを好み、PHPでドメインとIPアドレスのチェックを行うことができましたまた、Ant や Flash Builder でコンパイルする必要もありません。このようにして、秘密鍵はクライアントから離れたままになります。プラグインを使用すると、海賊が SWF ファイルを盗む可能性がありますが、AJAX を使用してサーバーで URL に署名することにより、盗むことは不可能です。