我使用以下代码从服务器读取 mp4 文件并通过 http 发送它。我的服务器端是 mvc4 控制器。有趣的是,视频在 Chrome 中渲染得很好。但在 ios 设备上没有得到任何东西,所以我认为这可能是响应流标头问题。我缺少什么吗?
var stream = new FileStream(path, FileMode.Open, FileAccess.Read);
var result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StreamContent(stream)
};
result.Content.Headers.ContentType = new MediaTypeHeaderValue("video/mp4");
result.Content.Headers.ContentRange = new ContentRangeHeaderValue(0, stream.Length);
result.Content.Headers.Add("filename", fileName);
return result;
这是响应头(如果它提供了任何线索):
Cache-Control:no-cache
Content-Length:2236480
Content-Range:bytes 0-2236480/*
Content-Type:video/mp4
Date:Fri, 24 May 2013 14:39:11 GMT
Expires:-1
filename:3.mp4
Pragma:no-cache
Server:Microsoft-IIS/7.5
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
我认为这是 iOS 设备上的编码器问题。据我所知,iOS iPhone 设备使用 H.264 mp4 编码。您应该尝试对视频进行基线级别 3 编码。您可以找到更多信息here http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/FrequentlyAskedQuestions/FrequentlyAskedQuestions.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)