我正在使用C#.NET我正在从网址(rtsp:// streamurl)获取实时视频流。现在我想知道我们是否可以将这个实时流转换为字节数组,以便我可以使用NReco.VideoConverter组件使用.h264对此Stream进行编码,然后通过服务器对其进行流式传输。
我目前正在收集有关NReco.VideoEncoder的详细信息和基础知识。它有a method to convert a live video stream,但对于输入文件,它需要System.IO.Stream而不是URL路径。这就是我问这个问题的原因。谢谢!
答案 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中,否则转换器无法理解输入(至少在使用此接口时)你提到过)。 这就是我在评论中的意思:您需要知道(字节)流的数据结构,以了解如何解释这些位,或者您必须进行猜测。
他们的网站说明了这个功能: