我想创建带有音频流的网站。为此,我使用的是Wowza流媒体引擎。
我已经寻找解决方案,但没有找到正确的方向。 我有整合: - * jw球员 *流播放器 *频闪播放器 没有安全性但我想要安全流媒体,对于这些我已经阅读了https://streamtoolbox.com/wowza-security-and-stream-protection但没有得到解决方案。
我使用了secureToken机制来保护RTMP流,并且我有用户jw7.3.6 player.below我提到了代码。
<?php
function base64url_encode($data) {
return rtrim(strtr(base64_encode($data), '+/', '-_'), '=');
}
$hash = base64url_encode('Shared Secret');//created from WOWZA streaming engine brower based panel Application -> vod -> playback sercurity ->edit
?>
Simple RTMP example
<br>
<div id="player"></div>
<script>
jwplayer("player").setup({
sources: [{
file: "rtmp://[my wowza ip]:1935/vod/sample.mp4?wowzatokenhash=<?php echo $hash; ?>"
}],
height: 360,
width: 640
});
</script>
但视频未播放。
对于流播放器中的安全流媒体,我使用了http://flash.flowplayer.org/demos/plugins/streaming/secure-wowza.html#html 但它需要在插件中编译令牌,但我没有找到任何办法。
请帮忙。
由于
答案 0 :(得分:0)
您必须以特定方式准备基于secure token的网址,以便能够利用其功能。对于RTMP,您可以尝试以下内容:
<?php
// Configure your parameters
$clientIP = null; // provide client IP optionally
$host = "127.0.0.1"; // your ip
$url= "rtmp://".$host."/";
$stream = "vod/mp4:sample.mp4"; // your stream
$start = time();
$end = strtotime("+30 minutes");
$secret = "mySharedSecret";
$tokenName = "wowzatoken";
然后您可以在此处定义请求网址:
$hash = "";
if(is_null($clientIP)){
$hash = hash('sha256', $stream."?".$secret."&{$tokenName}endtime=".$end."&{$tokenName}starttime=".$start, true); // generate the hash string
}
else{
$hash = hash('sha256', $stream."?".$clientIP."&".$secret."&{$tokenName}endtime=".$end."&{$tokenName}starttime=".$start, true); // generate the hash string
}
$base64Hash = strtr(base64_encode($hash), '+/', '-_');
$params = array("{$tokenName}starttime=".$start, "{$tokenName}endtime=".$end, "{$tokenName}hash=".$base64Hash);
if(!is_null($clientIP)){
$params[] = $clientIP;
}
sort($params);
$playbackURL = $url.$stream."?";
foreach($params as $entry){
$playbackURL.= $entry."&";
}
$playbackURL = preg_replace("/(\&)$/","", $playbackURL);
然后将playerURL嵌入播放器:
<div id="myElement">
</div>
<script type="text/javascript">
jwplayer("myElement").setup({
file: "<?php echo $playbackURL; ?>"
});
</script>