从c#中读取和发送mp4文件

本文关键字:mp4 文件 读取 | 更新日期: 2023-09-27 18:15:06

我使用以下代码从服务器读取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

从c#中读取和发送mp4文件

我认为这是iOS设备上的编码器问题。据我所知,iOS iPhone设备使用H.264 mp4编码。您应该尝试基线3级编码的视频。