Воспроизведение AVI с PHP readfile () - PullRequest
1 голос
/ 17 августа 2011

Я добавил игрока в HTML:

<OBJECT id=WindowsMediaPlayer1 width=320 height=264 hspace=5
vspace=5 classid=clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6 border="5" align="middle" >
<param name="URL" value="http://www.my.domain/stream.php">

<EMBED type='application/x-mplayer2'
pluginspage='http://microsoft.com/windows/mediaplayer/en/download/'
id='mediaPlayer' name='mediaPlayer' displaysize='4' autosize='-1'
bgcolor='darkblue' showcontrols="true" showtracker='-1'
showdisplay='0' showstatusbar='-1' videoborder3d='-1' width="320" height="264"
src="http://www.my.domain/stream.php" autostart="0" designtimesp='5311'>
</EMBED>
</OBJECT>

stream.php

<?php
$path='/path/to/file/my.avi';
header('Content-type: video/x-msvideo');
header('Content-Length: '.filesize($path));
readfile($path);
?>

видео воспроизводится, когда: src = "http://www.my.domain/my.avi видео не воспроизводится, когда: src = "http://www.my.domain/stream.php (без картинок)

P.S. mp4, flv, mov работает

Вы можете мне помочь?

любо

Ответы [ 4 ]

2 голосов
/ 17 августа 2011

Я думаю, что это все в заголовках ... нашел учебник в Интернете .. http://www.devshed.com/c/a/PHP/Video-Streaming-PHP-Script-Tutorial/3/

В уроке этот парень использовал:

header('Content-type: video/mpeg');    
header('Content-Length: '.filesize($path)); // provide file size    
header("Expires: -1");    
header("Cache-Control: no-store, no-cache, must-revalidate");    
header("Cache-Control: post-check=0, pre-check=0", false);    
readfile($path);
0 голосов
/ 03 февраля 2015

простое решение ... Создайте файл mp4, mov или flv, используйте его на своем сайте

0 голосов
/ 18 августа 2011

Я подозреваю, что вы отправляете неправильный заголовок типа контента. Как правило, необходимо правильно настроить этот заголовок, если вы хотите, чтобы клиент знал, какой это тип контента.

Вы можете проверить это, используя Fiddler и сравнив заголовки с момента прямого доступа к файлу и с доступом через ваш скрипт.

0 голосов
/ 17 августа 2011

вместо этого попробуйте установить заголовок местоположения:

$path='/path/to/file/my.avi';
header("location: $path");
...