FaN*_*NIX 16 c# ffmpeg video-streaming html5-video asp.net-web-api
我正在研究实现以下目标的最佳方法:
我有一堆CCTV录像文件(MP4文件,大小从4MB到50MB不等),我想通过门户网站提供这些文件.我的第一个想法是通过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文件,这背后有相当多的技术细节,所以这是线程:
似乎这个工作我需要将我的MP4文件编码为像WebM这样的东西,但这需要花费太多时间.Icecast(http://icecast.org/),这是一个流媒体服务器,但我还没有尝试过,再次不确定这是否是我需要做的.
现在我想到了,我实际上不需要直播,我只需要允许客户端通过他们的浏览器播放视频文件,也许使用HTML5视频元素?问题是,我的应用程序也需要在IOS上工作,所以我认为这意味着我甚至无法将我的MP4编码为FLV并只使用闪存.
我真正需要的是将所有视频剪辑作为缩略图放在网页上,如果客户点击其中一个,它就会开始尽快播放,而不必下载整个文件.想想imdb.com上的"Watch Trailer"功能.只需播放视频文件,这就是我想要的.我不需要LIVE流媒体,这是我认为WebM的用途?再一次,不确定.
Dun*_*unc 22
两件事情:
在HTML中使用视频元素(适用于浏览器和iOS):
<video src="http://yoursite.com/api/Media/GetVideo?videoId=42" />
Run Code Online (Sandbox Code Playgroud)支持206 PARTIAL CONTENTWeb API代码中的请求.这对于流媒体和iOS支持都至关重要,并且在您发布的那个帖子中提到过.
请按照以下示例:
http://blogs.msdn.com/b/webdev/archive/2012/11/23/asp-net-web-api-and-http-byte-range-support.aspx
简而言之:
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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17930 次 |
| 最近记录: |