【问题标题】:Encoding a live stream of bitmaps using FFMPEG使用 FFMPEG 编码位图的实时流
【发布时间】:2015-06-04 21:48:13
【问题描述】:

我有源源不断的 jpeg 流,需要转换为(任何类型的)视频。
问题是流实际上是无限的,我不知道任何使用图片创建视频的方法,在流停止之前不会将整个文件存储在内存中..

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

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

【问题讨论】:

  • @RandomUser 因为这应该是一个监控摄像头应用程序,它将以 5 fps 的帧速率录制 24 小时长的视频。 24*60*60* 5 = 432000

标签: c# video bitmap ffmpeg encode


【解决方案1】:

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

这是一个用 node 编写的示例项目:

https://github.com/psanford/node-mjpeg-test-server/tree/master/resources

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

命令行:

如果您的文件是连续的,例如 img000000.jpg、img000001.jpg 等,则可以从命令行使用 -pattern_type glob -i '*.jpg'-i img%06d.jpg

来源和例子:FFmpeg - Create a video slideshow from images

【讨论】:

  • 我试过了,但是 FFMPEG 编码视频的速度比我的程序保存它们的速度快,因此 ffmpeg 在编码所有现有图像后停止并且必须定期运行 - 它不会等待新图像
  • 我想不出一个简单的方法。您可以编写一个程序,使用静态图像作为输入来模拟 M-JPEG 流。可以配置源直接发送M-JPEG吗?
  • 我刚刚对 M-JPEG 进行了一些研究,它似乎非常有用!感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2011-09-25
  • 2013-11-08
  • 2012-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
  • 2014-12-06
相关资源
最近更新 更多