流式传输

学成在线(第13天)

房东的猫 提交于 2020-02-10 01:23:27
在线学习需求分析 学成在线作为在线教育网站,提供多种学习形式,包括:录播、直播、图文、社群等,学生登录进入学习中心即可 在线学习,本章节将开发录播课程的在线学习功能,需求如下: 1、学生可以在windows浏览器上在线观看视频。 2、播放器具有快进、快退、暂停等基本功能。 3、学生可以方便切换章节进行学习。 流媒体 流媒体就是将视频文件分成许多小块儿,将这些小块儿作为数据包通过网络发送出去,实现一边传输视 频 数据 包一边观看视频。 流式传输 在网络上传输音、视频信息有两个方式:下载和流式传输。 下载:就是把音、视频文件完全下载到本机后开始播放,它的特点是必须等到视频文件下载完成方可播放, 播放等待时间较长,无法去播放还未下载的部分视频。 流式传输:就是客户端通过链接视频服务器实时传输音、视频信息,实现“边下载边播放”。 流式传输包括如下两种方式: 1) 顺序流式传输 即顺序下载音、视频文件,可以实现边下载边播放,不过,用户只能观看已下载的视频内容,无法快进到未 下载的视频部分,顺序流式传输可以使用Http服务器来实现,比如Nginx、Apache等。 2)实时流式传输 实时流式传输可以解决顺序流式传输无法快进的问题,它与Http流式传输不同,它必须使用流媒体服务器并 且使用流媒体协议来传输视频,它比Http流式传输复杂。常见的实时流式传输协议有RTSP、RTMP、RSVP 等。

ASP.NET Core SignalR中的流式传输

寵の児 提交于 2019-12-05 04:13:58
原文: ASP.NET Core SignalR中的流式传输 什么是流式传输? # 流式传输是这一种以稳定持续流的形式传输数据的技术。 流式传输的使用场景 # 有些场景中,服务器返回的数据量较大,等待时间较长,客户端不得不等待服务器返回所有数据后,再进行相应的操作。这时候使用流式传输,可以将服务器数据碎片化,当每个数据碎片读取完成之后,就只传输完成的部分,而不需要等待所有数据都读取完成。 如何在ASP.NET Core SignalR中启用流式传输 # 在ASP.NET Core SignalR中当一个 Hub 方法的返回值是 ChannelReader 或者 Task<ChannelReader > , 这个 Hub 方法自动就会变成一个流式传输 Hub 方法。 下面我们来做了一个简单的例子 创建一个ASP.NET Core Web应用 # 首先我们使用Visual Studio 2017创建一个ASP.NET Core Web应用程序。 选择创建ASP.NET Core 2.1的Web Application 创建Hub # 下面我们添加一个 StreamHub 类,代码如下 Copypublic class StreamHub : Hub { public ChannelReader<int> DelayCounter(int delay) { var channel =

使用WebAPI流式传输大文件(在IIS上大于2GB)

半腔热情 提交于 2019-12-01 04:31:26
这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。 publicclassFileInf { public FileInf(){} publicStringid=""; publicStringpid=""; publicStringpidRoot=""; /** * 表示当前项是否是一个文件夹项。 */ publicbooleanfdTask=false; // /// 是否是文件夹中的子文件 /// publicbooleanfdChild=false; /** * 用户ID。与第三方系统整合使用。 */ publicintuid=0; /** * 文件在本地电脑中的名称 */ publicStringnameLoc=""; /** * 文件在服务器中的名称。 */ publicStringnameSvr=""; /** * 文件在本地电脑中的完整路径。示例:D:\Soft\QQ2012.exe */ publicStringpathLoc=""; /** * 文件在服务器中的完整路径。示例:F:\\ftp\\uer\\md5.exe */