Archívum - Ápr 23, 2017
Video Stream tekerés inaktiválása
Szervusztok!
PHP-s megoldással szeretnék streamelni videót, amivel nincs is gond, nagyszerű kis kód van rá, viszont szeretném elérni, hogy ne lehessen tekergetni.
Ha egy html video tagbe teszem, ez ugyan nem gond, könnyen kiiktatható, de ha egy lejátszóval nyitom meg ott már más a helyzet ugyebár mivel nincs kontrolom a kliens program felett, így a kódon szeretnék csiszolni. Miként írnátok át ezt, hogy az igényeket kielégítse?
[colorer=php]
// Open
if (!($stream = fopen($path, 'rb')))
{
die('Could not open stream for reading');
}
// setHeader()
ob_get_clean();
header("Content-Type: video/mp4");
header("Cache-Control: max-age=2592000, public");
header("Expires: ".gmdate('D, d M Y H:i:s', time()+2592000) . ' GMT');
header("Last-Modified: ".gmdate('D, d M Y H:i:s', @filemtime($path)) . ' GMT' );
$start = 0;
$size = filesize($path);
$end = $size - 1;
header("Accept-Ranges: 0-".$end);
if (isset($_SERVER['HTTP_RANGE']))
{
$c_start = $start;
$c_end = $end;
list(, $range) = explode('=', $_SERVER['HTTP_RANGE'], 2);
if (strpos($range, ',') !== false)
{
header('HTTP/1.1 416 Requested Range Not Satisfiable');
header("Content-Range: bytes $start-$end/$size");
exit;
}
if ($range == '-')
{
$c_start = $size - substr($range, 1);
}
else
{
$range = explode('-', $range);
$c_start = $range[0];
$c_end = (isset($range[1]) && is_numeric($range[1])) ? $range[1] : $c_end;
}
$c_end = ($c_end > $end) ?
PHP-s megoldással szeretnék streamelni videót, amivel nincs is gond, nagyszerű kis kód van rá, viszont szeretném elérni, hogy ne lehessen tekergetni.
Ha egy html video tagbe teszem, ez ugyan nem gond, könnyen kiiktatható, de ha egy lejátszóval nyitom meg ott már más a helyzet ugyebár mivel nincs kontrolom a kliens program felett, így a kódon szeretnék csiszolni. Miként írnátok át ezt, hogy az igényeket kielégítse?
[colorer=php]
// Open
if (!($stream = fopen($path, 'rb')))
{
die('Could not open stream for reading');
}
// setHeader()
ob_get_clean();
header("Content-Type: video/mp4");
header("Cache-Control: max-age=2592000, public");
header("Expires: ".gmdate('D, d M Y H:i:s', time()+2592000) . ' GMT');
header("Last-Modified: ".gmdate('D, d M Y H:i:s', @filemtime($path)) . ' GMT' );
$start = 0;
$size = filesize($path);
$end = $size - 1;
header("Accept-Ranges: 0-".$end);
if (isset($_SERVER['HTTP_RANGE']))
{
$c_start = $start;
$c_end = $end;
list(, $range) = explode('=', $_SERVER['HTTP_RANGE'], 2);
if (strpos($range, ',') !== false)
{
header('HTTP/1.1 416 Requested Range Not Satisfiable');
header("Content-Range: bytes $start-$end/$size");
exit;
}
if ($range == '-')
{
$c_start = $size - substr($range, 1);
}
else
{
$range = explode('-', $range);
$c_start = $range[0];
$c_end = (isset($range[1]) && is_numeric($range[1])) ? $range[1] : $c_end;
}
$c_end = ($c_end > $end) ?