Las*_*zlo 1 php video-streaming html5-video symfony
我有一个大问题。我有一个视频流媒体网站。网站有公共视频和私人视频,购买后可以看到私人视频。
在这里你可以看到目录结构:
/public_html
|__/vendor
|__/src
|__/public
|__/product
|__/sample-video
|__/video.mp4
Run Code Online (Sandbox Code Playgroud)
嗯,正如您所看到的,视频位于公共文件夹之外。目标是使它们无法直接访问。
这是树枝:
<video id="myVideo">
<source src="/products/12?video=10&cache={{ random(50, 10000) }}" type="video/webm" />
<source src="/products/12?video=10&cache={{ random(50, 10000) }}" type="video/mp4" />
</video>
Run Code Online (Sandbox Code Playgroud)
视频控制器: https: //pastebin.com/sne1mSHH
以及视频流逻辑: https://pastebin.com/2Sxd7Nqq
问题是这样的:
我要去现场。您在页面之间切换。非常好。我转到一个视频仍然很好的页面,但在启动视频后,该页面不好。页面只是加载,什么也不做。我无法再在页面之间切换了。我必须关闭隐身模式并开始新的会话。
直到现在我还以为会话锁是问题所在,但我关闭了写入会话。
我尝试在新标签中打开视频。另外,错误是在视频流完成之前,页面不会处理请求。
因此,当视频正在播放时,我无法发送新请求。我还可以附加什么以使错误更加透明?请帮忙!
我个人不会使用PHP来传输视频。问题是您必须锁定许多PHP进程来读取和流式传输大文件,而不是处理逻辑。在此过程中,您还会遇到PHP超时。
相反,我会使用Sendfile模块:
您可以为您的 Web 服务器、NGINX或其他服务器安装Apache模块或其他类型的Sendfile模块。
在PHP中,您执行保护逻辑,只需发送一个 HTTP 标头来表示您希望Sendfile处理流。这样,您的PHP代码就会停止运行,并且由 Web 服务器来处理文件的传输。
像这样的东西:
<?php
if (has_access_to_the_video($file))
{
// Send the right HTTP headers.
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Content-type: ' . mime_content_type($file));
header('Content-Length: ' . filesize($file));
// Make sure you have X-Sendfile module installed on your server.
header('X-Sendfile: ' . $file);
exit;
}
else
{
// Generate your 403 error or whatever.
}
Run Code Online (Sandbox Code Playgroud)
这可能会帮助您:
https://symfony.com/doc/current/components/http_foundation.htmlsendfile然后在页面中搜索。
https://www.h3xed.com/programming/how-to-use-x-sendfile-with-php-apache
对于该<video>标记,您声明了两个<source>元素,一个为 with type="video/webm",另一个为 with type="video/mp4",但两者都指向相同的 URL。在您的 PHP 逻辑中,我没有看到对所需内容类型的任何处理,因此您的服务器可能为两个编解码器返回相同的视频文件,这是有问题的。我会在 URL 中添加视频内容类型,并在服务器端使用Sendfile进行内部重定向到正确的文件(MP4、OGG、WEBM 等)。如果浏览器请求一个WEBM文件并收到一个MP4 H.264文件,我认为它不会正确加载。
似乎这MP4 H.264已被广泛处理,因此您可以只使用一种来源。请在此处查看当前支持:
| 归档时间: |
|
| 查看次数: |
897 次 |
| 最近记录: |