Скрыть источник файла с PHP для DivX Player - PullRequest
1 голос
/ 28 июля 2011

Мне нужен метод, чтобы скрыть источник файла во встроенном коде для проигрывателя DivX.

Источник файла удаленный. Я пытаюсь передать файл через php-файл, используя заголовок. Я использую 3 части. 1: определить путь к файлу в сеансе. 2: встроить файл для чтения видео: stream.php. 3: перенаправление на источник видео.

Вот часть 1, определите источник файла:

<?PHP session_start();
$_SESSION["url_vid"] = "http://remote-server.com/file.avi";
?>

Вот код для вставки (часть 2):

<object classid="clsid:67DABFBF-D0AB-41fa-9C46-CC0F21721616" width="320" height="260" codebase="http://go.divx.com/plugin/DivXBrowserPlugin.cab"> 
                <param name="custommode" value="none" /> 
                <param name="autoPlay" value="false" /> 
                <param name="src" value="stream.php" /> 
                <embed type="video/divx" src="stream.php" custommode="none" width="850" height="400" autoPlay="false"  pluginspage="http://go.divx.com/plugin/download/"> 
                </embed> 
            </object> 

вот код stream.php:

<?PHP
session_start();
header("Location :".$_SESSION["url_vid"]);
?>

Это не работает.

Когда проигрыватель DivX запущен, он предупреждает: «Веб-проигрыватель DivX Plus не может загрузить видео, проверьте подключение к Интернету». Но при переходе непосредственно к файлу stream.php он начинает скачивать файл.

Кто-нибудь знает какие-либо альтернативные способы скрыть путь к файлу? Или каким-то образом возиться с файлом stream.php, чтобы он работал через проигрыватель DivX.

Мне нужно использовать проигрыватель DivX, потому что он может читать файлы .avi.

Ответы [ 2 ]

2 голосов
/ 28 июля 2011

http://labs.divx.com/node/1304

Очевидно, DivX не очень хорошо делает куки. Это может быть объяснением. Я не думаю, что это возможно сделать.

Я заметил, что при запуске веб-плеера он делает 2 соединения (для любого кино). первое соединение загружает 2,8 КБ (я думаю, это заголовок, который сообщает DivX Player, если файл является фильмом или нет), а затем 2-е соединение, которое загружает сам фильм и воспроизводит его.

что я заметил, когда аутентификация "включена", DivX Web Player запросы на первое соединение "С печеньем", поэтому он получит заголовок правильно, но когда дело доходит до 2-го (фактического) соединения, он не отправляет COOKIE, и поэтому возвращенные фильмы - Access запрещенный текст.

Возможно, вы захотите установить временный ключ для передачи в stream.php, который stream.php может найти, а затем сопоставить с URL-адресом для перенаправления (а затем удалить ключ, не позволяющий людям копировать ссылку). ) - если проблема не в том, что DivX не поддерживает перенаправления.

0 голосов
/ 28 июля 2011

Попробуйте

header("Location: " . $_SESSION["url_vid"]); // moved colon

Но, несмотря на это, я не уверен, что вы можете перехватывать и перезаписывать запросы потокового мультимедиа, как это.Это не простые задачи «проси контент, получай контент, заканчивай», к которым вы привыкли.

Если ничего другого, медиапроигрывателю не понадобятся знания заголовка HTTP Location и поддержкидля изменения своего целевого URL на основании этого;Вы не показали нам, что провели какое-либо исследование, чтобы определить, так ли это.

(В конечном счете, вы должны помнить, что header("Location: abc") не волшебная пуля, которая изменяет запрос на сервере.сторона; вы отправляете HTTP-заголовок обратно клиенту , предлагая ему «повторить попытку» с другим адресом.)

Также есть файлы cookie, которые следует учитывать;вы, похоже, используете куки-файлы, основанные на сеансе, и если программное обеспечение проигрывателя не поддерживает и не использует их, переменная сеанса не будет видна.

...