【问题标题】:Video Uploading: recommended process?视频上传:推荐流程?
【发布时间】:2025-12-27 22:35:12
【问题描述】:

嘿,这只是对任何做过这件事的人的一个快速问题。我想创建一个视频管网站。我以前做过文件上传,但想知道是否有人可以就我打算做什么给我建议。

我计划的方式是在我的网页目录中建立一个文件夹,并在病毒扫描和检查 mime 后将视频上传到该文件夹​​中。然后将使用 FFMPEG 将视频转换并压缩为 flv。

我将更改名称并将视频参考 ID 存储在 mysql 中,以便可以获取和提供文件名。

我将使用 HTTP_Download 将文件提供给 Flash 播放器

$dl = new HTTP_Download();
$dl->setFile("$path");
$dl->setContentDisposition(HTTP_DOWNLOAD_ATTACHMENT, "$path");
$dl->setContentType('video/flv');
$dl->send();

有人有什么建议吗?将所有视频放在一个目录中是个好主意吗?

【问题讨论】:

    标签: php ffmpeg


    【解决方案1】:

    您可能需要考虑基于 Java 的上传器,因为 PHP 在大型上传时可能会遇到超时问题。

    您是否将 FFMPEG 处理为 CRON 作业而不是在上传时,因为它需要很长时间。

    查看Wowza Streaming Server 之类的内容以投放视频。允许流式传输,一切都在根目录之上。我用 UID 为每个视频命名,并向 Flash 视频播放器发送一个参数来决定播放哪个视频。

    【讨论】:

    • 谢谢小鬼,你说的 cron 任务是什么意思?
    • 还有,Wowza 到底是什么,一个像单独的服务器提供商一样存储视频和流媒体的地方?
    • CRON 作业是一个自动化过程,您可以将其设置为以特定时间间隔运行。因此,与其直接处理视频,不如将其放在临时目录中,并编写一个带有“未处理”标志的数据库条目。 cron 作业将每分钟查找“未处理”条目并在后台处理它们。 Wowza 是您在自己的服务器上安装的流媒体服务器(软件)。
    • 因为当电影通过正常连接提供时,它必须连续加载每一帧,即如果不加载以前的数据就不能向前跳过(就像旧的 VHS 视频一样)。使用适当的流媒体服务器,您可以跳到任何地方而无需加载(如 DVD)。这会减少带宽 + 保护您的视频流 + 提供强大的统计数据。
    【解决方案2】:

    存储它们的位置和方式在很大程度上取决于它们需要的安全程度(即人们应该能够直接访问目录中的文件吗?还是应该存储得比这更安全?)

    如果直接访问没问题,那么将它们全部放在一个文件夹中也没问题。如果没有,那么您可能希望隐藏文件夹名称,将它们存储在安全数据库中,或者存储在服务器外部无法访问的文件夹中。

    另外,我希望您知道这样的服务会消耗大量的存储空间和带宽吗?如果您真的对此很认真,我希望您已经准备好部署一个可扩展的解决方案..

    【讨论】:

    • 我知道带宽和使用情况。我正在构建一个解决方案,但我必须随时扩展它。资金有限哈哈。有推荐的服务器提供商吗?我应该从专用服务器开始吗?另外,我不希望用户访问视频,除非他们正在流式传输视频,所以你是说我应该为每个视频上传创建一个文件夹?
    • 绝对不是每次上传的新文件夹。我会选择将它们存储在您无法从服务器外部直接访问的主 Web 目录之外。然后将它们从那里流式传输到可访问的地方。
    • 您如何访问位于您的 Web 根目录之外的文件?您提到将它们流式传输到一个地方。你这是什么意思?
    • 在您的服务器上,您将拥有一个根 Web 目录,例如“public_html”或“www”。此根目录中的任何不安全文件夹都可以通过 HTTP 访问。将任何文件放在这个根目录之外将使它们无法通过HTTP访问,但仍然可以访问服务器资源,例如PHP脚本。因此,您可以设置某种流媒体播放器(或使用 niggles 提到的流媒体服务器),然后从该目录中获取它们。
    最近更新 更多