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

本文关键字:字节 字节数 数组 转换 实时视频 我们 | 更新日期: 2023-09-27 18:29:53

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

我目前正在收集NReco.VideoEncoder的详细信息并学习其基础知识。它有一种转换实时视频流的方法,但对于输入文件,它需要System.IO.stream而不是URL路径。这就是我问这个问题的原因。谢谢

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

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

当你查看界面链接时,你会看到:

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

流非常灵活(第一个输入参数),所以您应该能够使用文件和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#流(或网络摄像头、RTSP URL、文件)到C#的实时视频流转码流(或流服务器URL、文件)