PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
Coder1994
Отправлено: 25 Июня, 2011 - 20:40:42
Частый гость
Покинул форум
Сообщений всего: 213
Дата рег-ции: Май 2010
Откуда: Россия, Ростов-на-Дону
Помог: 3 раз(а)
Здравствуйте!
Меня интересует следующий вопрос, реально реализовать скрипт, который бы послужил "как прокси", т.е. скрыл истиный источник информации.
Точнее, есть сайт, на нём расположен видео ролик - http://site.ru/1.mp4, при вставке данной ссылки в онлайн видеопроигрыватель, браузер будет писать идёт загрузка с site.ru.
А мне нужно написать скрипт который бы тянул видео с site.ru, а в бразузере и в исходном коде было написано загрузка данных с mysite.ru, т.е. нужны так сказать промежуточные врата (если можно так выразиться).
Тупо выкачивать видео себе на хост будет очень долго, т.к. видео за пару сотен тысяч, и ихний размер от 150мб
(Отредактировано автором: 25 Июня, 2011 - 20:43:33)
Coder1994
Отправлено: 26 Июня, 2011 - 11:47:57
Частый гость
Покинул форум
Сообщений всего: 213
Дата рег-ции: Май 2010
Откуда: Россия, Ростов-на-Дону
Помог: 3 раз(а)
PHP:
скопировать код в буфер обмена
<?PHP
/*
xmoov-php 1.0
Development version 0.9.3 beta
by: Eric Lorenzo Benjamin jr. webmaster (AT) xmoov (DOT) com
originally inspired by Stefan Richter at flashcomguru.com
bandwidth limiting by Terry streamingflvcom (AT) dedicatedmanagers (DOT) com
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.
For more information, visit http://creativecommons.org/licenses/by-nc-sa/3.0/
For the full license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode
or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.
*/
// SCRIPT CONFIGURATION
//------------------------------------------------------------------------------------------
// MEDIA PATH
//
// you can configure these settings to point to video files outside the public html folder.
//------------------------------------------------------------------------------------------
// points to server root
define ( 'XMOOV_PATH_ROOT' , '' ) ;
// points to the folder containing the video files.
define ( 'XMOOV_PATH_FILES' , 'video/' ) ;
//------------------------------------------------------------------------------------------
// SCRIPT BEHAVIOR
//------------------------------------------------------------------------------------------
//set to TRUE to use bandwidth limiting.
define ( 'XMOOV_CONF_LIMIT_BANDWIDTH' , TRUE ) ;
//set to FALSE to prohibit caching of video files.
define ( 'XMOOV_CONF_ALLOW_FILE_CACHE' , FALSE ) ;
//------------------------------------------------------------------------------------------
// BANDWIDTH SETTINGS
//
// these settings are only needed when using bandwidth limiting.
//
// bandwidth is limited my sending a limited amount of video data(XMOOV_BW_PACKET_SIZE),
// in specified time intervals(XMOOV_BW_PACKET_INTERVAL).
// avoid time intervals over 1.5 seconds for best results.
//
// you can also control bandwidth limiting via http command using your video player.
// the function getBandwidthLimit($part) holds three preconfigured presets(low, mid, high),
// which can be changed to meet your needs
//------------------------------------------------------------------------------------------
//set how many kilobytes will be sent per time interval
define ( 'XMOOV_BW_PACKET_SIZE' , 90
) ;
//set the time interval in which data packets will be sent in seconds.
define ( 'XMOOV_BW_PACKET_INTERVAL' , 0
. 3
) ;
//set to TRUE to control bandwidth externally via http.
define ( 'XMOOV_CONF_ALLOW_DYNAMIC_BANDWIDTH' , TRUE ) ;
//------------------------------------------------------------------------------------------
// DYNAMIC BANDWIDTH CONTROL
//------------------------------------------------------------------------------------------
function getBandwidthLimit( $part )
{
switch ( $part )
{
case 'interval' :
switch ( $_GET [ XMOOV_GET_BANDWIDTH] )
{
case 'low' :
return 1 ;
break ;
case 'mid' :
return 0.5 ;
break ;
case 'high' :
return 0.3 ;
break ;
default :
return XMOOV_BW_PACKET_INTERVAL;
break ;
}
break ;
case 'size' :
switch ( $_GET [ XMOOV_GET_BANDWIDTH] )
{
case 'low' :
return 10 ;
break ;
case 'mid' :
return 40 ;
break ;
case 'high' :
return 90 ;
break ;
default :
return XMOOV_BW_PACKET_SIZE;
break ;
}
break ;
}
}
//------------------------------------------------------------------------------------------
// INCOMING GET VARIABLES CONFIGURATION
//
// use these settings to configure how video files, seek position and bandwidth settings are accessed by your player
//------------------------------------------------------------------------------------------
define ( 'XMOOV_GET_FILE' , 'file' ) ; define ( 'XMOOV_GET_POSITION' , 'position' ) ; define ( 'XMOOV_GET_AUTHENTICATION' , 'key' ) ; define ( 'XMOOV_GET_BANDWIDTH' , 'bw' ) ;
// END SCRIPT CONFIGURATION - do not change anything beyond this point if you do not know what you are doing
//------------------------------------------------------------------------------------------
// PROCESS FILE REQUEST
//------------------------------------------------------------------------------------------
if ( isset ( $_GET [ XMOOV_GET_FILE
] ) && isset ( $_GET [ XMOOV_GET_POSITION
] ) ) {
// PROCESS VARIABLES
# get seek position
$seekPos = intval ( $_GET [ XMOOV_GET_POSITION
] ) ; # get file name
# assemble file path
$file = XMOOV_PATH_ROOT . XMOOV_PATH_FILES . $fileName ;
# assemble packet interval
$packet_interval = ( XMOOV_CONF_ALLOW_DYNAMIC_BANDWIDTH
&& isset ( $_GET [ XMOOV_GET_BANDWIDTH
] ) ) ? getBandwidthLimit
( 'interval' ) : XMOOV_BW_PACKET_INTERVAL
; # assemble packet size
$packet_size = ( ( XMOOV_CONF_ALLOW_DYNAMIC_BANDWIDTH
&& isset ( $_GET [ XMOOV_GET_BANDWIDTH
] ) ) ? getBandwidthLimit
( 'size' ) : XMOOV_BW_PACKET_SIZE
) * 1042 ;
# security improved by by TRUI www.trui.net
{
print ( '<b>ERROR:</b> xmoov-php could not find (' . $fileName . ') please check your settings.' ) ;
}
{
# stay clean
# keep binary data safe
$fh = fopen ( $file , 'rb' ) or
die ( '<b>ERROR:</b> xmoov-php could not open (' . $fileName . ')' ) ;
$fileSize = filesize ( $file ) - ( ( $seekPos > 0
) ?
$seekPos + 1
: 0
) ;
// SEND HEADERS
if ( ! XMOOV_CONF_ALLOW_FILE_CACHE)
{
# prohibit caching (different methods for different clients)
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" ) ; }
# content headers
header ( "Content-Type: video/x-flv" ) ; header ( "Content-Disposition: attachment; filename=\" " . $fileName . "\" " ) ; header ( "Content-Length: " . $fileSize ) ;
# FLV file format header
if ( $seekPos != 0)
{
print ( 'FLV' ) ;
}
# seek to requested file position
# output file
{
# use bandwidth limiting - by Terry
if ( XMOOV_CONF_LIMIT_BANDWIDTH)
{
# get start time
$time_start = ( ( float) $usec + ( float) $sec ) ;
# output packet
print ( fread ( $fh , $packet_size ) ) ; # get end time
$time_stop = ( ( float) $usec + ( float) $sec ) ;
# wait if output is slower than $packet_interval
$time_difference = $time_stop - $time_start ;
# clean up
if ( $time_difference < ( float) $packet_interval )
{
usleep ( ( float
) $packet_interval * 1000000
- ( float
) $time_difference * 1000000
) ; }
}
else
{
# output file without bandwidth limiting
}
}
}
}
?>
Вот единственный файл, xmoov.php, насколько я вижу по коду, он воспроизводит уже загруженные видео?
Да и как его подключить к сайту я не понял.
(Добавление)
Так я использую JWPlayer:
PHP:
скопировать код в буфер обмена
echo '<script type="text/javascript" src="/jwplayer/jwplayer.js"></script>' ;
echo '<div id="container">Loading the player ...</div>' ;
echo '<script type="text/javascript">
jwplayer("container").setup({
flashplayer: "/jwplayer/player.swf",
file: "' . $flash . '",
height: 270,
width: 480 });' ;
echo '</script>' ;
$flash имеет такое значение - http://site[dot]ru/video[dot]mp4
а я хочу чтобы я видео воспроизводил якобы со своего сайта, но бралось оно с site.ru
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Apache и другие веб-серверы »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB