【问题标题】:How To Make A Video File From Images [closed]如何从图像制作视频文件 [关闭]
【发布时间】:2013-03-07 19:38:48
【问题描述】:

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

原因是我想做一个截屏应用。

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

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

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

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

【问题讨论】:

  • 1.了解不同的电影格式。 2. 实现上述格式写入器,获取位图并输出电影文件。
  • C# 没有内置视频编码,所以你必须使用库。
  • @Overv:他想自己做,在 C# 中可以做到这一点(它毕竟可以操作文件和内存:-)。虽然工作量很大......
  • @EricJ。在这种情况下,他可以将未压缩的视频保存在 AVI 容器中。我想这不会很复杂。
  • 实际上我不必使用库...而且我不是在寻找内置的任何东西。我正计划将原始字节直接写入文件。已经知道怎么做header了,但是还是不知道怎么做数据块。

标签: c# video


【解决方案1】:

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

有两种可能的方法:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • ups,我才意识到这个问题是前段时间提出的..
    猜你喜欢
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 2015-06-15
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多