![在运行 apache2、php5.4 和 fastcgi 的 ubuntu 服务器上传输更大视频(200 MB 以上 20 分钟,mp4)的要求和设置是什么?](https://linux22.com/image/875702/%E5%9C%A8%E8%BF%90%E8%A1%8C%20apache2%E3%80%81php5.4%20%E5%92%8C%20fastcgi%20%E7%9A%84%20ubuntu%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E4%BC%A0%E8%BE%93%E6%9B%B4%E5%A4%A7%E8%A7%86%E9%A2%91%EF%BC%88200%20MB%20%E4%BB%A5%E4%B8%8A%2020%20%E5%88%86%E9%92%9F%EF%BC%8Cmp4%EF%BC%89%E7%9A%84%E8%A6%81%E6%B1%82%E5%92%8C%E8%AE%BE%E7%BD%AE%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我使用 owncloud、Ubuntu 14.04、apache2 fast CGI 等软件让它处理较小的视频。它可以处理 1 分钟的视频,但如果视频长度超过 2 分钟,则必须先下载整个文件才能播放。在 php.INI 中,我将缓存设置为 2 GB,在 apache2.conf 中设置了 mime 类型。我尝试安装 flv 流媒体,但情况仍然相同,小视频可以播放,而较大的视频则必须等待下载。我在论坛上搜索了 3 周,谷歌搜索没有任何突破,有人能建议正确的方向吗?诚挚问候 Michael
答案1
参考http://ubuntuforums.org/showthread.php?t=2292901&p=13360326#post13360326
回复:无需下载整个文件即可流式传输 Mp4 视频我已经全力以赴,但我对 apache2 有一个答案。历史 >>> 我安装了 xsendfile 模块,但无法使其工作。我最终放弃了 apache2,转而使用 lighttpd 和各种 mod 来使其运行。它可以在 Android 和 Windows 上运行,但由于标头发送不正确,它根本无法在 IOS 上运行。Owncloud 不喜欢 Lighttpd,并发出一堆错误。我坚持了下来,但最终还是结束了,我回到了 Apache2 的快照。我再次检查了错误日志,问题明确指向 xsendfile。我修改了 Xsendfile 的设置并使其正常运行。
为了使其工作,假设您有一个运行 php 的设置和安装了 fastcgi 模块等。如果您能在下载整个视频后播放视频,那么这适合您!
代码:apt-get install libapache2-mod-xsendfile 在您的服务器 ssl 文件中添加代码 代码:... SetEnv MOD_X_SENDFILE_ENABLED 1 XSendFile On XSendFilePath / 请记住要测试它,从这里开始 >>>> XsendFilePath / <<<<<<< 当它工作时,锁定它,更好地说明 Web 服务器数据目录的位置。我弄乱了这一点,最终暴露了保存我将要提供的文件的数据目录。如果有人有更好的建议,请更新我!
我现在可以将视频流式传输到所有平台(IOS、Android 和 Windows),但 Windows XP 设置不起作用,但这是我最不担心的事情。您必须使用 MMPEG 处理每个视频 - 我尝试了大量程序,但 ffmpeg 似乎是最好的。现在我将视频导入我的云并编写了一个 bash 脚本来转换并将转换后的视频发送到云上的另一个目录。按照此处的建议运行 ffmpeg 行 - 这可以处理大多数视频,我最终找到了一种针对 Android mp4 的不同方法。诚挚的问候
迈克尔