我们可以将实时视频流转换为字节数组吗?

时间:2016-01-11 14:31:57

标签: c# .net video video-streaming live-streaming

我正在使用C#.NET我正在从网址(rtsp:// streamurl)获取实时视频流。现在我想知道我们是否可以将这个实时流转换为字节数组,以便我可以使用NReco.VideoConverter组件使用.h264对此Stream进行编码,然后通过服务器对其进行流式传输。

我目前正在收集有关NReco.VideoEncoder的详细信息和基础知识。它有a method to convert a live video stream,但对于输入文件,它需要System.IO.Stream而不是URL路径。这就是我问这个问题的原因。谢谢!

1 个答案:

答案 0 :(得分:1)

我没有使用NReco.VideoEncoder的经验,所以这只是猜测:

查看界面链接时,您会看到:

public ConvertLiveMediaTask ConvertLiveMedia(
    Stream inputStream,
    string inputFormat,
    string outputFile,
    string outputFormat,
    ConvertSettings settings
)

Stream是非常灵活的(第一个输入参数),所以你应该能够使用文件和web中的任何东西......所以你应该能够这样做(没有编译这段代码) :

  // convert url to stream
  WebRequest request=WebRequest.Create(url); // your rtsc url?
  request.Timeout=30*60*1000;
  request.UseDefaultCredentials=true;
  request.Proxy.Credentials=request.Credentials;
  WebResponse response=(WebResponse)request.GetResponse();
  using (Stream stream = response.GetResponseStream())
  {
      var converter = new FFMpegConverter(); // init converter
      converter.ConvertLiveMedia(stream, // put your stream here
                                 "???", // problem here... no rtsc support in Formats enum found, so you might need to know the video format 
                                 "C:\whateverpath\whatever.hevc", // extension?
                                 Format.h265);

  }

我不知道这里是如何支持rtsc的,你现在可能需要首先将哪种视频编码打包到rtsc中,否则转换器无法理解输入(至少在使用此接口时)你提到过)。 这就是我在评论中的意思:您需要知道(字节)流的数据结构,以了解如何解释这些位,或者您必须进行猜测。

他们的网站说明了这个功能:

  • 从C#Stream(或网络摄像头,RTSP URL,文件)到C#的实时视频流转码 流(或流服务器URL,文件)