0

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

原因是我想制作一个屏幕捕获应用程序。

我将用 C# 对其进行编码并打算将屏幕捕获为

位图,然后将其写入文件。

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

我想知道如何处理原始字节。

4

2 回答 2

1

可以使用免费库NReco.VideoConverter(也提供 nuget 包)生成视频,该库实际上是 FFMpeg 工具的 .NET 包装器。

有两种方法可以实现:

  • 如果您已经有图像文件,最好的方法是使用特殊的“image2”格式(FFMpeg demuxer),FFMPeg 将直接读取文件以生成视频
  • VideoConverter支持实时流转换,可以实时制作视频。在这种情况下,应将“rawvideo”指定为输入格式,并且 C# 应用程序应将 RAW 位图字节(如问题中所述)作为实时流转换器的输入。
于 2014-02-26T07:51:00.510 回答
0

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

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

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

于 2016-08-12T09:14:19.067 回答