asp.net MVC - 大小超过10MB的视频无法播放

时间:2016-02-17 13:18:06

标签: c# asp.net asp.net-mvc

 <httpRuntime 
executionTimeout="3600"
maxRequestLength="102400"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"
enableVersionHeader="true"
/>

如果我在web.config文件中使用上面的代码,我可以上传大尺寸视频,但视频根本无法播放。如果大小小于8 MB,则播放视频。

我尝试过以下代码。

  <video width="100%" height="100%" controls autoplay>
  <source src="~/@Model.video_Path" type="video/mp4">
    </video>     

2 个答案:

答案 0 :(得分:0)

如果您运行的是IIS7或更高版本,则可能还需要增加maxAllowedContentLength,这基本上会限制发送到客户端的响应的大小。它应该放在你的web.config文件中。

这大约是1GB:

<system.webServer>
   <security>
      <requestFiltering>
         <requestLimits maxAllowedContentLength="1073741824" />
      </requestFiltering>
   </security>
 </system.webServer>

答案 1 :(得分:0)

<video width="100%" height="100%" controls autoplay>
  <source src="~/@Model.video_Path" type="video/mp4">
    </video>

这部分可能引起问题,不建议使用 您可以简单地将视频作为字节数组发送到视频标签中源中的src标签

转到控制器并像这样创建方法

public ActionResult MyAction(string FilePath)
        {
            try
            {
        FilePath = Path.Combine(Server.MapPath("~/Uploads/Videos/") + FilePath);

        byte[] myVideo = System.IO.File.ReadAllBytes(FilePath);
        return new FileContentResult(myVideo, "video/mp4");
            }
            catch (Exception)
            {
                return View("_NotFoundVideo");
            }


        }

然后转到视频标签中源标签中的src属性 并使用@ Url.Action()来获取视频的字节数组作为filecontentresult 像这样

 @foreach (var item in Model)
    {
        <tr>
            @if (item.Path != null || item.Name != null)
            {
                <td>
                    <h5> @Html.DisplayFor(modelItem => item.Name)</h5> <br />
                    <video style="width:900px; height:300px;" controls>
                        @*<source src="~/UpLoads/Videos/@item.Path" type="video/mp4" />*@
                        <source src="@Url.Action("MyAction", "Blobs", new { FilePath =item.Path })" type="video/mp4" />
                 <h1 class="glyphicon glyphicon-arrow-down"></h1>
                    </video>
                </td>
            }