通过HttpHandler发送视频文件的一部分

问题描述

我是一位.Net开发人员,他为特定公司的Intranet编写了CMS系统。 我们的客户可以在此处上传视频和其他媒体,并让其员工和客户与其他信息一起查看。 我们使用标准Httphandler从服务器的HDD中获取上传的视频,然后将context.response.TransmitFile()传输到浏览器。 因此,我们可以将此处理程序用作html5 src属性的目标。 现在,我收到了一个请求,以“模拟”视频流。这样的想法是,客户端将视频上传为文件,设置一个特定的开始日期,从该日期开始可以观看视频,并且对视频的每个请求都应仅返回从开始日期到现在的视频片段。 假装这部影片将是一个实时流,可自行进行。

我尝试调整HttpHandler来计算开始日期和当前请求时间之间的秒数,将其乘以视频的比特率,然后简单地从Stream中切除x个字节(例如使用Stream.seek),但是Brwosers无法将得到的数据识别为有效的视频流。我猜这是因为缺少(切掉了)标题信息和关键帧等。

没有人知道允许我执行此操作的库(将视频切成片段而无需将它们写入硬盘,我不想为放置在我的httphandler上的每个请求放置视频文件)

该视频为mp4格式,我想避免不得不对其进行转码的额外开销(就像VLC在将其用于流式传输时要求的那样)

关于该主题的任何想法,我都迷失了……!

先谢谢了。 克里斯

说明: 我不知道事先要切断多少视频,这取决于请求流的时间。 公式很简单:请求日期(Datetime.Now)-配置的视频开始时间。必须从视频开始时“跳过”该“时间跨度”。 理想情况下,我喜欢一些库,该库允许我将文件作为fileStream加载,跳过x秒并将剩余的字节/帧写入httphandler的输出。但是我不知道该怎么做,因为VLC和FFMPEG似乎只能通过写入文件来支持切片,而不是将切片的数据作为流提供给我...

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...