а как сделать чтоб он шифровался но при этом и воспроизводилось видео, я делал так, генерировал временные ссылки вот так:
<?
$timeout = 100; // время
$filesdir = "films/new/"; // Слешь в конце
//
$secret = md5((int)(time() / $timeout)); //Всегда целое число, меняется раз в $timeout секунд;
if( isset($_GET['key']) ) {
if( ($_GET['key'] == $secret) && //проверка ключа
strlen($_GET['fn']) && file_exists($filesdir.$_GET['fn']) ) { //проверка файла
readfile($filesdir.$_GET['fn']);die; //читаем файл
} else {
header ( 'HTTP/1.1 404 Not Found' );//Файл не найден
die;
}
?>
и подставлял ссылку в плеер:
<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" height="350" width="600"><param name="filename" value=""><param name="ShowStatusBar" value="True"><embed src="?fn=kino1.flv&key=<?PHP echo $secret;?>" showstatusbar="1" type="video/x-ms-asf" height="380" width="500"></object>
но видео почему то не проигрывает, может я что то не так делаю ? ---------- Добавлено 16.02.2013 в 20:46 ---------- с помощью uppod не подойдет потому что там шифрование доступно только в платной версии, есть еще какие то способы ?---------- Добавлено 16.02.2013 в 21:10 ----------ну так что посоветуете ?
а как мне зайти в настройки nginx, где находятся его файлы ?
у меня нашло такое:
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 03 Feb 2013 16:45:19 GMT
Content-Type: text/html
Connection: keep-alive
X-Powered-By: PHP/5.3.10-1ubuntu3.4
Vary: Accept-Encoding
это значит что установлен ?
ну хорошо, если я его правильно отредактирую то тогда у меня должно показывать видео, а если кто то захочет скачать файл video.m3u по этой ссылке mysite.ru/video_direct/file/video.m3u то доступ к нему будет закрыт ? Правильно ?
то есть не заданы эти переменые ?
так там типа сам скрипт недоделан или в нем есть ошибки ?
помогите разобратся в том скрипте, а то я php только начинаю учить и пока кроме как создавать базы и доставать от туда данные ничего больше не знаю, пока что, прошу вашей помощи, без вас сам не разберусь.
неуказал размер файла или что то другое ?
сделал так:
$file = pathinfo($_SERVER['REQUEST_URI']);
$filename = $file['video.m3u']; //Смотрим, какой файл запросили
// лимит времени выполнения
set_time_limit(0);
$self = pathinfo($_SERVER['PHP_SELF']);
$self = $self['file']; //Смотрим из какой папки вызван скрипт.
if(!is_file($_SERVER['DOCUMENT_ROOT']."$self/".$filename)){
echo "Файл не найден";
return;
// А теперь главное. Запоминаем откуда, к нам пришел посетитель
$refer = $_SERVER['HTTP_REFERER'];
if(!strstr($refer,$_SERVER['SERVER_NAME'])){ // Если не с нашего района, то ...
echo "<html><head><META http-equiv=Content-Type content=\"text/html; charset=windows-1251\"></head><body>";
echo "<center><h1>ЙУХ тебе а не файл...</h1></center>";
echo "</body></html>";
$f = fopen($filename, 'rb'); // Открываем файл и отдаем клиенту.
if (isset($_SERVER['HTTP_RANGE'])) { // поддерживается ли докачка
$range = $_SERVER['HTTP_RANGE'];
$range = str_replace('bytes=', '', $range);
$range = str_replace('-', '', $range);
if ($range) fseek($f, $range);
// если есть смещение
if ($range) {
header($_SERVER['SERVER_PROTOCOL'].' 206 Partial Content');
header($_SERVER['SERVER_PROTOCOL'].' 200 OK');
header( 'Last-Modified: '.date('D, d M Y H:i:s T', filemtime($filename)) );
header('Content-Length: '.($filesize-$range));
header('Accept-Ranges: bytes');
header('Content-Range: bytes '.$range.'-'.($filesize - 1).'/'.$filesize);
header('Content-Type: application');
header('Content-Disposition: attachment; filename="'.$filename.'"');
ini_set('output_buffering', 0);
ini_set('zlib.output_compression', 0);
while( !feof($f) ) {
ob_start();
echo fread($f, $speed);
ob_flush();
ob_end_flush();
sleep(1); // засыпаем
// закрываем файл
fclose($f);
доступа к файлу нет но видео так и не проигрывает. Что я не так делаю ?
СПАСИБО, а если в моем случае то этот скрипт мне писать в файле view_video.php ?