如何使用C#为本地网络创建视频流 [英] How to create video streaming for local network using C#
问题描述
您好!
我一直致力于使用C#在服务器端开发视频流服务的解决方案。在我的情况下,我需要通过以太网为客户端实现从文件(或其他流,而不是任何设备)到本地网络的视频流。我尝试使用AForge.NET Framework和AForge.FFmpeg.dll命名空间。我将我的图像转换为mp4视频。
我将图像转换为视频文件的代码
Hello!
I have been working on the solution to develop video streaming services on server side using C#. In my case I need to implement videostream from file (or other stream, not any devices) to local network via Ethernet for clients. I try use AForge.NET Framework and AForge.FFmpeg.dll namespace. I convert my images to mp4 video.
My code for converting images to video file
using (var vFWriter = new VideoFileWriter())
{
// Create file
vFWriter.Open("VideoMaker.avi", width, height, framRate, VideoCodec.MPEG4);
foreach (var imageEntity in lstImg)
{
//var bmp = ToBitmap(ImageToByteArray(lstImg));
var bmp = new Bitmap(imageEntity);
vFWriter.WriteVideoFrame(bmp);
}
Debug.WriteLine($"Images quantity: {lstImg.Count}");
vFWriter.Close();
}
所以我想我需要使用VideoFileReader类来阅读我的视频。
So I think I need to use VideoFileReader class to read my video.
using (var fileReader = new VideoFileReader())
{
fileReader.Open("VideoMaker.avi");
Debug.WriteLine("width: " + fileReader.Width);
Debug.WriteLine("height: " + fileReader.Height);
Debug.WriteLine("fps: " + fileReader.FrameRate);
Debug.WriteLine("codec: " + fileReader.CodecName);
}
AForge.NET Framework不提供任何用于将视频流式传输到网络的API。
我想到FFmpeg和Gst-sharp(gstreamer),但我找不到任何创建流的解决方案。
有什么建议吗?
我尝试过:
AForge.NET
AForge.NET Framework does not provide any API for streaming video to network.
I think about FFmpeg and Gst-sharp(gstreamer), but I can't find any solution to create stream.
Any suggestions?
What I have tried:
AForge.NET
using (var fileReader = new VideoFileReader())
{
fileReader.Open("VideoMaker.avi");
Debug.WriteLine("width: " + fileReader.Width);
Debug.WriteLine("height: " + fileReader.Height);
Debug.WriteLine("fps: " + fileReader.FrameRate);
Debug.WriteLine("codec: " + fileReader.CodecName);
}
推荐答案
图像数量:{lstImg.Count});
vFWriter.Close();
}
"Images quantity: {lstImg.Count}"); vFWriter.Close(); }
所以我想我需要使用VideoFileReader类来阅读我的视频。
So I think I need to use VideoFileReader class to read my video.
using (var fileReader = new VideoFileReader())
{
fileReader.Open("VideoMaker.avi");
Debug.WriteLine("width: " + fileReader.Width);
Debug.WriteLine("height: " + fileReader.Height);
Debug.WriteLine("fps: " + fileReader.FrameRate);
Debug.WriteLine("codec: " + fileReader.CodecName);
}
AForge.NET Framework不提供任何用于将视频流式传输到网络的API。
我想到FFmpeg和Gst-sharp(gstreamer),但我找不到任何创建流的解决方案。
有什么建议吗?
我尝试过:
AForge.NET
AForge.NET Framework does not provide any API for streaming video to network.
I think about FFmpeg and Gst-sharp(gstreamer), but I can't find any solution to create stream.
Any suggestions?
What I have tried:
AForge.NET
using (var fileReader = new VideoFileReader())
{
fileReader.Open("VideoMaker.avi");
Debug.WriteLine("width: " + fileReader.Width);
Debug.WriteLine("height: " + fileReader.Height);
Debug.WriteLine("fps: " + fileReader.FrameRate);
Debug.WriteLine("codec: " + fileReader.CodecName);
}
如何使用Microsoft Expression Encoder进行网络直播 [ ^ ]
这篇关于如何使用C#为本地网络创建视频流的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!