前言:
我有一个hikvision ipcamera,可以从rtsp:// url中流式传输原始h264,我需要在浏览器中播放这个实时提要。
我设法让一个基本的RTSP->ffmpeg-> (快速启动) mp4管道工作,我可以播放视频时,保存到一个文件。
我不知道如何让我的控制器动作“流畅”。
我尝试了各种方法,比如写入Response.Body,传输编码:分块,但似乎都不起作用。下面是基本代码:
public IActionResult Play5(){
var ms = new MemoryStream();
var muxer = new RTSPToMp4(ms);
Task.Run(() => muxer.Stream());
return new FileStreamResult(ms, "video/mp4");
}内存流包含实时提要,但响应为空,这里是来自chrome的request\response:
请求
method: GET
:path: /api/stream/play5
:scheme: https
accept: */*
accept-encoding: identity;q=1, *;q=0
accept-language: it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7
cache-control: no-cache
pragma: no-cache
range: bytes=0-
referer: https://localhost:5001/Stream
sec-fetch-dest: video
sec-fetch-mode: no-cors
sec-fetch-site: same-origin
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36响应
content-length: 0
content-type: video/mp4
date: Thu, 08 Oct 2020 14:31:06 GMT
server: Kestrel
status: 200我是不是遗漏了什么?
发布于 2020-10-09 05:34:47
MP4不能直播。
最快的解决方案是,您应该保持H.264格式不变(不包含在某些MP4文件中),只使用任何JavaScript based H.264 decoder。
https://stackoverflow.com/questions/64264990
复制相似问题