如何从图像制作视频文件

时间:2013-03-07 19:38:48

标签: c# video

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

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

我将在C#编码并打算将屏幕捕获为

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

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

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

2 个答案:

答案 0 :(得分:1)

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

有两种方式可行:

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

答案 1 :(得分:0)

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

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

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