【问题标题】:Read and send a mp4 file from in C#从 C# 中读取和发送 mp4 文件
【发布时间】:2013-05-20 03:24:07
【问题描述】:

我正在使用以下代码从服务器读取 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# asp.net html5-video http-response-codes


【解决方案1】:

我认为这是 iOS 设备上的编码器问题。据我所知,iOS iPhone 设备使用 H.264 mp4 编码。您应该尝试对视频进行 Baseline level 3 编码。您可以找到更多信息here

【讨论】:

  • 您的意思是我需要更改我的源视频文件并使用该编码重新格式化它吗?
  • 用 H.264 编码的视频试过了,结果还是一样。在 Chrome 中工作。不适用于 IOS 设备。
猜你喜欢
  • 1970-01-01
  • 2021-03-28
  • 2021-12-31
  • 2023-03-02
  • 2016-07-12
  • 2023-03-25
  • 1970-01-01
  • 2020-09-21
  • 1970-01-01
相关资源
最近更新 更多