我目前正在处理从Level3 CDN获取rtmp流的问题。
可在此处找到文档: https://rapidshare.com/files/1450549534/Token_Components.html (看起来你需要登录才能查看,因此我在“托管”上托管。原始网址为: https://mediaportal.level3.com/mediaWeb/help/Content/ServicesDocs-Streaming/StreamingTokenAuth/TokenComponents.htm)
Scoll down to On Demand流输入/输出示例(适用于MP4文件)
我正在尝试重现该示例并使用相同的值获取相同的url。我为此写了一个小函数:
function flimmithash($file) {
$streamer = 'pmsales';
$host = 'pmsalesfs.fplive.net';
$start_time = '20080101120000';
$end_time = '20101231235900';
$customer_secret = 'Secret'; // in the documentation there is also secret with a non capital s, i tried both
$resouce_path = "/$streamer/$file"; echo "resouce_path: $resouce_path <br>\n";
$message = "$resouce_path?start_time=$start_time&end_time=$end_time#$customer_secret"; echo "message: $message <br>\n";
$digest = md5($message); echo "digest: $digest <br>\n";
$tokenvalue = "start_time=$start_time&end_time=$end_time&digest=$digest"; echo "tokenvalue: $tokenvalue <br>\n";
$token = base64_encode($tokenvalue); echo "token: $token <br>\n";
$url = "rtmp://$host/$streamer?token=".($token)."/mp4:$file"; echo "url: $url <br>\n";
return $url;
}
echo "url: ".flimmithash('support/lvlt300kbps.mp4')."<br>\n";
我使用与示例中完全相同的值,但无法获得相同的摘要。
我使用了md5,因为它与长度匹配。我还尝试过资本和非资本的秘密。
您可以在此处转到示例脚本:https://rapidshare.com/files/2581196874/Appendix.html(原文:https://mediaportal.level3.com/mediaWeb/help/Content/ServicesDocs-Streaming/StreamingTokenAuth/Appendix-SampleScripts.htm)
但是绝对没有使用md5,他们使用sha1。但是sha1比示例中的摘要更长。
当然,我试图用我的值填充两个版本,但都没有用。
所以我的问题是:根据示例,任何人都可以重现示例和/或告诉我摘要或改变我的功能吗?
答案 0 :(得分:2)
他们的例子不正确。他们提供的摘要是针对文件/support/lvlt300kbps.flv
,并且可以使用小写secret
作为共享密钥,使用md5轻松生成该文件名。您可以看到它与文档中正上方的FLV示例中提供的摘要相同。