【发布时间】:2016-06-12 08:06:47
【问题描述】:
我有一个用 Play Framework 编写的 Web 服务器,它通过 http 请求服务器视频文件,我正在构建一个小型 IOS 应用程序来播放从服务器下载的视频。
let fileURL: NSURL? = NSURL(string: "video url")
player = AVPlayer(URL: fileURL!)
使用上面的代码,AVPlayer 可以播放来自http://www.kolor.com/360-videos-files/noa-neal-graffiti-360-music-video-full-hd.mp4 的 mp4 视频,但是它不能播放从我自己的服务器返回的相同视频。到目前为止,我没有看到任何错误。 (我从 kolor.com 下载了视频,放到自己的服务器上)
在请求视频时,我确实比较了 kolor.com 的 http 响应标头和我自己的服务器,并且我确实确保我的服务器可以处理远程请求,以便我的服务器能够返回特定范围的视频。目前 chrome 自己的视频播放器能够播放从我的服务器下载的视频(通过直接在 chrome 的地址栏中输入视频 url),但是我无法让 IOS AVPlayer 工作......
我需要在自己的服务器中进行任何特定设置吗?还是我在 http 标头中遗漏了什么?
以下是 IOS 应用程序从我的服务器请求视频时的一系列 http 请求和响应(ETag 是我选择的随机字符串,我添加它是因为来自 kolor.com 的 http 响应也有这个标头):
【问题讨论】:
-
如果您的文件是.mp4,为什么您的服务器返回“video/webm”Content-Type?
-
我尝试了不同的视频类型,对于这个特定的例子,实际返回的文件是 webm
-
其实,服务端需要对视频进行编码,然后再交给客户端吗?我注意到developer.apple.com/library/ios/documentation/…,它与我的场景相关吗?
标签: ios video-streaming avplayer