Taki skrypt zapisuję jako video.php i w HTMLu przy użyciu videoJS (http://videojs.com) lub przy użyciu flowplayer'a odtwarzam taki film. Problem jest jednak taki, że nie mogę zmienić czasu odtwarzania filmu, czyli jesli odtwarza się taki film i jest na 2 minucie to nie mogę przesunąć ssuwaka na 1:12:04 przykładowo bo film nie pobrał się jeszcze do takiego czasu. I tutaj potrzebne jest poprawne parsowanie nagłówka HTTP_RANGE.
U mnie skrypt wygląda tak:
$url = 'http://page.com/file.flv'; $length = get_headers($url); $file_size = $matches[0]; $ext = $info['extension']; $mime_type = generateUpToDateMimeArray($ext); if ( !$mime_type ) { } { if ($size_unit == 'bytes') { } else { $range = ''; exit; } } else { $range = ''; } if ($seek_start > 0 || $seek_end < ($file_size - 1)) { } else { } { { exit; } } exit;
Jednak ani flowplayer ani VideoJS nie potrafią sobie poradzić z tym kodem i tak, videoJS zwraca FLASH: srcnotfound, a flowplayer w ogóle nie rusza z miejsca, tak jakby w ogóle nie miał co odtwarzać.
Jeśli jednak wyrzucę te dane dot. nagłówka RANGE:
$url = 'http://page.com/file.flv'; $length = get_headers($url); $length = $matches[0]; $ext = $info['extension']; $mime_type = generateUpToDateMimeArray($ext); if ( !$mime_type ) { } { }
wszystko działa poza tym, że nie mogę ruszyć z tym ssuwakiem...
Kod HTML wygląda tak:
<video id="video1" class="video-js vjs-default-skin" poster="http://video-js.zencoder.com/oceans-clip.png" width="640" height="480" data-setup='{"loadingSpinner": false, "controls" : true, "autoplay" : false, "preload" : "auto"}'> <source src="http://mypage.pl/videos/video.php" type="video/x-flv"> </video>
Ma ktoś jakiś pomysł?
Pisałem już na stackoverflow.com, na jakichś ogólnoeuropejskich forach programistycznych, na wielu polskich i nikt mi nigdzie nie udzielił żadnej odpowiedzi, więc nie zdziwię się jak tutaj będzie podobnie, ale... może jednak.
Dzięki.