IIS请求视频文件的问题
我的服务器上有很多视频文件,我希望通过视频url,请求视频的时候,
视频长度小于5分钟的视频,正常展示,大于5分钟的视频,只展示前5分钟。可以这样操作么?
IIS请求视频文件的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- Evaporator Core 2023-02-16 19:13关注
可以通过以下方式实现:
1.打开 Internet Information Services(IIS)管理器,找到你的网站,右键单击该网站,选择“添加应用程序”。
2.在“添加应用程序”对话框中,指定别名、应用程序池和物理路径等相关信息,然后单击“确定”按钮。
3.在应用程序的物理路径中,创建一个名为“Media”的文件夹,用于存放媒体文件。
4.在 IIS 中为该文件夹添加 MIME 类型,以便服务器能够正确地识别媒体文件的格式。例如,你可以添加以下 MIME 类型:
.mp4 video/mp4
.mov video/quicktime
.avi video/x-msvideo
.wmv video/x-ms-wmv
5.创建一个名为“StreamVideo.aspx”的 ASP.NET 网页,用于流式传输媒体文件。该网页可以使用以下代码实现:<%@ Page Language="C#" %> <%@ Import Namespace="System.IO" %> <%@ Import Namespace="System.Web" %> <%@ Import Namespace="System.Web.UI" %> <%@ Import Namespace="System.Web.UI.WebControls" %> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { string filePath = Request.QueryString["file"]; if (filePath != null) { string fileName = Path.GetFileName(filePath); string extension = Path.GetExtension(filePath); string contentType = ""; switch (extension) { case ".mp4": contentType = "video/mp4"; break; case ".mov": contentType = "video/quicktime"; break; case ".avi": contentType = "video/x-msvideo"; break; case ".wmv": contentType = "video/x-ms-wmv"; break; default: Response.StatusCode = 404; Response.End(); break; } Response.Clear(); Response.ClearContent(); Response.ClearHeaders(); Response.Buffer = false; Response.ContentType = contentType; Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName); using (FileStream fileStream = new FileStream(Server.MapPath(filePath), FileMode.Open, FileAccess.Read)) { long length = fileStream.Length; long startBytes = 0; int packSize = 1024 * 8; //10kb if (Request.Headers["Range"] != null) { Response.StatusCode = 206; string[] range = Request.Headers["Range"].Split(new char[] { '=', '-' }); startBytes = Convert.ToInt64(range[1]); } Response.AddHeader("Content-Length", (length - startBytes).ToString()); Response.AddHeader("Content-Range", string.Format(" bytes {0}-{1}/{2}", startBytes, length - 1, length)); fileStream.Seek(startBytes, SeekOrigin.Begin); int maxCount = (int)Math.Ceiling((length - startBytes + 0.0) / packSize); for (int i = 0; i < maxCount && Response.IsClientConnected; i++) { Response.BinaryWrite(fileStream.ReadBytes(packSize)); } } Response.Flush(); Response.End(); } else { Response.StatusCode = 404; Response.End(); } } </script>
6.可以通过以下格式请求媒体文件:
http:////StreamVideo.aspx?file=
其中, 是指你的服务器地址, 是指你的网站名称, 是指你要请求的媒体文件相对于 Media 文件夹的路径。
例如,如果你的服务器地址为 192.168.1.100,你的网站名称为 MyWebsite,你的媒体文件位于 Media 文件夹下的 video.mp4 文件,那么你可以使用以下 URL 请求该文件:
http://192.168.1.100/MyWebsite/StreamVideo.aspx?file=Media/video.mp4
请注意,在这个例子中,媒体文件的路径相对于 StreamVideo.aspx 文件的位置。因此,如果你的 StreamVideo.aspx 文件不是位于网站根目录下,你需要在文件路径前面添加适当的路径。
解决 无用评论 打赏 举报
悬赏问题
- ¥50 三种调度算法报错 有实例
- ¥15 关于#python#的问题,请各位专家解答!
- ¥200 询问:python实现大地主题正反算的程序设计,有偿
- ¥15 smptlib使用465端口发送邮件失败
- ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
- ¥15 对于squad数据集的基于bert模型的微调
- ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
- ¥20 steam下载游戏占用内存
- ¥15 CST保存项目时失败
- ¥20 java在应用程序里获取不到扬声器设备