如何使用C#为本地网络创建视频流 [英] How to create video streaming for local network using C#

查看:114
本文介绍了如何使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆