我目前正在尝试通过用于控制视频访问的 PHP 脚本提供用于 HTML5 视频(使用 video-js)的 MP4 视频。经过一些研究,我能够在此处找到的 stackoverflow 文章的帮助下完成这项工作。如果我导航到 PHP 脚本,我可以像在 Firefox、Safari 和 IE 中通过其绝对路径(例如 localhost/myvideo.mp4 而不是 localhost/myscript.php)查看视频一样查看视频。我的问题是谷歌浏览器,它只是显示一个黑色的屏幕,中间有一个小型媒体播放器,什么也不做。
我确实尝试使用快速重写,例如 localhost/avideo.mp4 路由到 PHP 脚本,但不幸的是这并没有改变任何东西。
这是我的脚本:
if (is_file($uri)) {
header('Content-Type: video/mp4');
if (isset($_SERVER['HTTP_RANGE'])) {
$this->rangeDownload($uri);
exit;
} else {
header("Content-Length: ".filesize($uri));
$this->readfile_chunked($uri);
exit;
}
} else {
//error
}
rangeDownload 方法直接取自此链接的附录 A,如前面提到的 stackoverflow 文章中所建议的那样。