我正在尝试创建rtmp流的预览。但RTMP播放占用带宽作为源,我想用ffmpeg和c#做mjpeg流。有可能吗?
我正在尝试创建一个用户可以监控流的网页。为此,我不需要使用RTMP网址来观看,因为它需要越来越多的带宽。
所以,我的想法是捕获图像并以每秒1帧的顺序速率显示它们。通过这种方式,用户可以监控。
我尝试了各种方法,比如使用mjpeg
ffmpeg.exe -i renditiontest.mp4 -c:v mjpeg -q:v 31 -an sample.avi
现在,生成输出文件。但是,它占据了硬盘。
因此,下一步是创建覆盖以前图像的图像
ffmpeg.exe -y -i renditiontest.mp4 -f image2 -updatefirst 1 sample2.jpg
现在,我尝试创建一个流,它将不断读取图像并将其作为C#中的响应写入。
using (WebClient webClient = new WebClient())
{
string url = "http://localhost/probe_VOD/mjpg/sample2.jpg";
var memoryStream = new MemoryStream(webClient.DownloadData(url));
response.Headers.AcceptRanges.Add("bytes");
response.StatusCode = HttpStatusCode.OK;
response.Content = new StreamContent(memoryStream);
//response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("render");
//response.Content.Headers.ContentDisposition.FileName = "sample.jpg";
response.Content.Headers.ContentType = new MediaTypeHeaderValue("multipart/x-mixed-replace; boundary=myboundary");
response.Content.Headers.ContentLength = memoryStream.Length;
}
return response;
请让我知道如何实现这一点。