通过 Web API 2 流式传输视频内容

2024-03-24

我正在研究执行以下操作的最佳方法:

我有一堆闭路电视录像文件(MP4 文件,大小从 4MB-50MB 不等),我想通过门户网站提供这些文件。我的第一个想法是通过 Web API 流式传输文件,所以我找到了下面的链接:

http://www.strathweb.com/2013/01/asynchronously-streaming-video-with-asp-net-web-api/ http://www.strathweb.com/2013/01/asynchronously-streaming-video-with-asp-net-web-api/

实现示例项目后,我意识到该示例基于 Web API 1,而不是我正在使用的 Web API 2.1。经过更多研究后,我得到了使用 WebAPI 2.1 进行编译的代码。然后我意识到,如果我想做流媒体,我不能使用 MP4 文件,这背后有大量的技术细节,所以这里是线程:

实时 http 流传输到 HTML5 视频客户端的最佳方法 https://stackoverflow.com/questions/21921790/best-approach-to-real-time-http-streaming-to-html5-video-client

看来要实现这一点,我需要将我的 MP4 文件编码为 WebM 之类的东西,但这会花费太多时间。冰铸(http://icecast.org/ http://icecast.org/),这是一个流媒体服务器,但我还没有尝试过,再次不确定这是否是我需要做的。

现在我想起来了,我其实不需要直播,我只需要让客户端通过浏览器播放视频文件,也许使用HTML5视频元素?问题是,我的应用程序也需要在 IOS 上运行,所以我认为这意味着我什至无法将 MP4 编码为 FLV,而只能使用闪存。

我真正需要的只是将所有视频剪辑作为缩略图显示在网页上,如果客户端单击其中一个,它就会立即开始播放,而无需下载整个文件。想想 imdb.com 上的“观看预告片”功能。只需播放视频文件,这就是我想要的。我不需要实时流媒体,我认为这就是 WebM 的用途?再说一遍,不确定。


两件事情:

  1. Use a 视频元素 http://www.w3schools.com/tags/tag_video.asp在你的 HTML 中(这适用于浏览器和 iOS):

    <video src="http://yoursite.com/api/Media/GetVideo?videoId=42" /> 
    
  2. Support 206 PARTIAL CONTENT您的 Web API 代码中的请求。这是crucial对于流媒体和 iOS 支持,并在您发布的线程中提到。

只需按照这个例子:

https://devblogs.microsoft.com/aspnet/asp-net-web-api-and-http-byte-range-support/ https://devblogs.microsoft.com/aspnet/asp-net-web-api-and-http-byte-range-support/

简而言之:

if (Request.Headers.Range != null)
{
    // Return part of the video
    HttpResponseMessage partialResponse = Request.CreateResponse(HttpStatusCode.PartialContent);
    partialResponse.Content = new ByteRangeStreamContent(stream, Request.Headers.Range, mediaType);
    return partialResponse;
}
else 
{
    // Return complete video
    HttpResponseMessage fullResponse = Request.CreateResponse(HttpStatusCode.OK);
    fullResponse.Content = new StreamContent(stream);
    fullResponse.Content.Headers.ContentType = mediaType;
    return fullResponse;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 Web API 2 流式传输视频内容 的相关文章

随机推荐