如何从图像制作video文件

我想知道如何从图像制作video文件。

原因是我想制作一个截屏应用程序。

我将用C#编写它,并打算将屏幕捕获为

然后将位图写入文件。

不要告诉我使用一些我可以在某处下载的库或DLL。

我想知道如何用原始字节来做。

可以使用免费库生成videoNReco.VideoConverter (nuget包也可用),它实际上是FFMpeg工具的.NET包装器。

有两种方法可行:

  • 如果您已有图像文件,最好的方法是使用特殊的“image2”格式(FFMpeg demuxer),FFMPeg将直接读取文件以生成video
  • video可以通过VideoConverter支持的实时流转换实时生成。 在这种情况下,“rawvideo”应指定为输入格式,C#应用程序应将RAW位图字节(如问题中所述)作为实时流转换器的输入。

如果你真的想自己做这个(我不推荐),一个相对简单的方法是将你的rgb图像转换为YCbCr颜色空间,而不是用YUV4MPEG2格式写: https ://wiki.multimedia.cx/index .php?title = YUV4MPEG2这可以保存为* .y4m文件,例如可以通过VLC打开。

请注意,这将是“未压缩”,因此将导致巨大的文件(如果您选择使用YCbCr 4:2:2或4:2:0,您会得到一点压缩,但是远不及像现代video编码算法那样H.264将实现)。

你为什么不想使用图书馆? 我一直走在这条路上。 video压缩甚至理解容器格式(如果你在该领域没有经验)是一个复杂的问题,正如我已经说过的,我不推荐它。