C# 使用FFMPEG对实时位图流进行编码

C# 使用FFMPEG对实时位图流进行编码,c#,video,bitmap,ffmpeg,encode,C#,Video,Bitmap,Ffmpeg,Encode,我有一个恒定的jpeg流,需要转换成视频(任何类型)。 问题是,流实际上是无限的,我不知道有什么方法可以使用图片创建视频,直到流停止后,图片才会将整个文件存储在内存中 有没有一种方法可以让我不断地从c#向FFMPEG提供位图或JPEG,或者至少让FFMPEG从包含+432000个图像的文件夹中读取图像(在命令行上) 请注意,将不会有声音,图像质量将很低,它们将以~5 FPS的速度出现,这将在高端笔记本电脑上运行。顺便说一句,我可以提供代码,但我认为目前没有必要这样做,因为我只是创建位图并保存它们

我有一个恒定的jpeg流,需要转换成视频(任何类型)。
问题是,流实际上是无限的,我不知道有什么方法可以使用图片创建视频,直到流停止后,图片才会将整个文件存储在内存中

有没有一种方法可以让我不断地从c#向FFMPEG提供位图或JPEG,或者至少让FFMPEG从包含+432000个图像的文件夹中读取图像(在命令行上)

请注意,将不会有声音,图像质量将很低,它们将以~5 FPS的速度出现,这将在高端笔记本电脑上运行。顺便说一句,我可以提供代码,但我认为目前没有必要这样做,因为我只是创建位图并保存它们。

更新: 您可以基于静态图像创建
MJPEG

以下是在node中编写的示例项目:

如果可能,最好将源配置为直接发送MJPEG。然后,您可以使用此流作为输入,并将其实时转换为其他内容

命令行:

如果您的文件是按顺序排列的,如img000000.jpg、img00001.jpg等,则可以从命令行使用
-pattern\u type glob-i'*.jpg'
-i img%06d.jpg


来源和示例:

@RandomUser,因为这应该是一个监控摄像头应用程序,它将以5 fps的帧速率录制24小时的视频。24*60*60*5=432000我试过了,但FFMPEG编码视频的速度比我的程序保存的速度快,因此FFMPEG在编码所有现有图像后停止,并且必须定期运行-它不等待新图像。我想不出一个简单的方法。您可以编写一个程序,使用静态图像作为输入来模拟M-JPEG流。你能将源代码配置为直接发送M-JPEG吗?我刚刚研究了一下M-JPEG,它看起来非常有用!谢谢你的帮助!