Как добавить временную метку в плагин безопасной потоковой передачи Flowplayer (с помощью rtmpe / wowza) - PullRequest
1 голос
/ 17 февраля 2012

Я искал последние 2 дня, чтобы найти решение этой проблемы, поэтому любая помощь будет принята с благодарностью.

Я использую собственный токен (я перекомпилировал плагин swf) с сервером wowza надругой конец.Он работает нормально, но люди все еще могут скопировать код нашего проигрывателя и воспроизвести его на своем сайте, связавшись с нашим SWF.

Я хочу добавить метку времени в мою конфигурацию безопасной потоковой передачи.Я добавил временную метку и добавил urlResolvers в часть клипа, но затем мой проигрыватель потока выдает ошибку, что он не может найти видео (неверная ссылка с хешем и временной меткой).

Мой вопрос такой,если я использую метку времени в моем плеере, какую другую конфигурацию мне нужно сделать?Нужно ли что-то делать с моим сервером wowza?Потому что, добавив метку времени, сервер не может найти видео.

Пожалуйста, помогите мне с любой информацией, которая у вас есть.Спасибо!:)

1 Ответ

0 голосов
/ 06 сентября 2013

Метка времени используется в качестве маркера безопасности или для маскировки URL. все, что вам нужно сделать, это

// <![CDATA[
  window.onload = function () {
    $f("player", "flowplayer-3.2.16.swf", {
      plugins: {
        secure: {
          url: "flowplayer.securestreaming-3.2.8.swf",
          timestampUrl: "sectimestamp.php"
        }
      },
      clip: {
        baseUrl: "YOUR BASE URL",
        url: "trailer.flv",
        urlResolvers: "secure",
        scaling: "fit",
        onStart: function (clip) {
          document.getElementById("info").innerHTML = clip.baseUrl + "/" + clip.url;
        }
      }
    });
  };
  // ]]>
  </script>

и в вашем sectimestamp.php это очень простая строка кода:

<?php
echo time();
?>

тогда вы используете это с чем-то вроде этого в файле video.php

$hash = $_GET['h'];
$streamname = $_GET['v'];
$timestamp = $_GET['t'];
$current = time();
$token = '12359khlsdfhlasiu3'; // I recommend using a dynamically generated token
$checkhash = md5($token . '/' . $streamname . $timestamp);

if (($current - $timestamp) <= 2 && ($checkhash == $hash)) {
  $fsize = filesize($streamname);
  header('Content-Disposition: attachment; filename="' . $streamname . '"');
  if (strrchr($streamname, '.') == '.mp4') {
    header('Content-Type: video/mp4');
  } else {
    header('Content-Type: video/x-flv');
  }
  header('Content-Length: ' . $fsize);
  session_cache_limiter('nocache');
  header('Expires: Thu, 19 Nov 1981 08:52:00 GMT');
  header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
  header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
  header('Pragma: no-cache');
  $file = fopen($streamname, 'rb');
  print(fread($file, $fsize));
  fclose($file);
  exit;
} else {
  header('Location: /URL/');
}

и это пример использования его в flowplayer

...