[英]Serving video to iOS devices using the Apache/PHP server included with PostgreSQL
我正在开发一个系统,其中服务器将向设备(iDevice或其他设备)提供视频,然后要求用户对视频进行评分。 我决定将PostgreSQL用于我的数据库,并让它安装一个Apache和PHP服务器来进行工作(如http://www.enterprisedb.com/products-services-training/pgdownload所示 )。
但是,似乎该服务器的配置与典型的Apache / PHP安装不同。 当iDevice尝试从服务器下载视频时,iDevice会出现以下错误:
无法播放电影-服务器配置不正确
我进行了一些研究,发现iDevices需要字节范围请求功能,因此我检查了服务器的访问日志并发现了以下内容:
xx.xx.xx.xx--[08 / Mar / 2011:11:45:56 -0700]“ GET temp.mp4 HTTP / 1.1” 206 2
xx.xx.xx.xx--[08 / Mar / 2011:11:45:56 -0700]“ GET temp.mp4 HTTP / 1.1” 200 17760579
(其中“ 17760579”是特定文件的确切大小,以字节为单位)
他们应该看起来像这样:
xx.xx.xx.xx--[07 / Mar / 2011:18:04:11 -0700]“ GET temp.mp4 HTTP / 1.1” 206 2
xx.xx.xx.xx--[07 / Mar / 2011:18:04:11 -0700]“ GET temp.mp4 HTTP / 1.1” 206 25947357
xx.xx.xx.xx--[07 / Mar / 2011:18:04:11 -0700]“ GET temp.mp4 HTTP / 1.1” 206 60637
xx.xx.xx.xx--[07 / Mar / 2011:18:04:11 -0700]“ GET temp.mp4 HTTP / 1.1” 206 25880928
因此,我知道我的服务器无法正确处理某些字节范围的请求。 但是,使用curl检查此功能可返回正确的结果:
curl --range 0-99 http://url/temp.mp4 -o /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 100 0 100 0 0 8574 0 --:--:-- --:--:-- --:--:-- 10000
我确保正确配置了视频MIME类型。
我不确定从这里去哪里。 该服务器中某处某处配置错误。
更新:这是适当的版本号:
服务器版本:Apache / 2.2.16(Unix)
建立服务器:2010年10月7日00:26:09
PHP版本5.3.3
x86_64-apple-darwin上的PostgreSQL 9.0.2
Apache需要安装并启用mod_h264才能正确处理带有字节范围请求的mp4。 您是否检查过此mod?
iOS设备使用名为“ HTTP Live Streaming”的流服务,该服务是在Apple发布Quicktime Streaming Server(QSS)时开发的。
除非将您的服务器配置为进行实时流传输,否则您的视频将仅下载然后播放。 不能按需播放。
另一个选择是RTSP流式传输,但是我不确定评级系统如何在所有这些方面发挥作用。 这听起来像是iPhone / iOS应用程序的工作。
我不知道如何解决此问题。 我最初在问题评论中使用了在该站点上找到的PostgreSQL / Apache / PHP安装软件包,因为这是一种安装这三个软件包并确保它们正常工作的一种方法。 显然,由于最终的服务器未提供我所需的功能,因此我可以选择从头开始安装所有内容。 我使用此处找到的说明来实现此结果。 这些说明有些过时了,但是该过程有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.