我们可以将实时视频流转换为字节数组吗
本文关键字:字节 字节数 数组 转换 实时视频 我们 | 更新日期: 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、文件)