卷曲视频搜索栏不工作

时间:2016-11-09 19:14:09

标签: php curl video-streaming seekbar

我有使用curl获取视频地址和视频的代码,但代码不允许我转发视频

我的观看代码如下:

<video id="videos" width='300px' height='200px' controls>
    <source src="video.php" type='video/mp4'/>
</video>

在这里我可以播放上面的视频但是搜索栏(转发视频)无法正常工作

如果有人能帮助我,我很高兴吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

您提供视频的PHP脚本需要设置HTTP Accept-Ranges标头,并且需要遵守所请求的HTTP_RANGE。那应该够了。

您尚未发布video.php(或您在示例中包含的image.php)的任何PHP代码,因此我无法100%确定这将完全符合您的要求寻找。

这是我认为你想要做的一个很好的例子:http://codesamplez.com/programming/php-html5-video-streaming-tutorial

这是重要的部分:

$this->start = 0;
$this->size  = filesize($this->path);
$this->end   = $this->size - 1;
header("Accept-Ranges: 0-".$this->end);

if (isset($_SERVER['HTTP_RANGE'])) {

    $c_start = $this->start;
    $c_end = $this->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 $this->start-$this->end/$this->size");
        exit;
    }
    if ($range == '-') {
        $c_start = $this->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 > $this->end) ? $this->end : $c_end;
    if ($c_start > $c_end || $c_start > $this->size - 1 || $c_end >= $this->size) {
        header('HTTP/1.1 416 Requested Range Not Satisfiable');
        header("Content-Range: bytes $this->start-$this->end/$this->size");
        exit;
    }
    $this->start = $c_start;
    $this->end = $c_end;
    $length = $this->end - $this->start + 1;
    fseek($this->stream, $this->start);
    header('HTTP/1.1 206 Partial Content');
    header("Content-Length: ".$length);
    header("Content-Range: bytes $this->start-$this->end/".$this->size);
}
else
{
    header("Content-Length: ".$this->size);
}