2

我有一个视频解密器库,可以解码过时的视频格式,并通过回调函数返回 BMP 中的视频帧和 WAV 中的音频。现在我需要在 windows 下以任何标准格式对新视频进行编码。

执行此操作的标准方法可能是什么?我正在使用 Win32/C。我猜 Windows 有自己的编码库和驱动程序,我不需要使用 FFMPEG。任何指向示例代码或至少指向要查看的库的指针都将非常有帮助。

编辑:我接受。FFMPEG 是最简单的方法。

4

3 回答 3

5

在 Windows 上,您有两个本机选择。

  1. 旧的Windows 多媒体库太古老了,无法认真考虑,但确实有Video Compression Manager
  2. 然后是DirectShow

这当然可以通过 DirectShow 实现,但您最好享受 COM 编程以及过滤器、图形和名字对象的概念(哦,天哪)。有关速成课程,请参阅本教程:

重新压缩 AVI 文件

MSDN 文档

更简单的方法确实是使用像FFMPEGVLC这样的库。

于 2009-07-15T04:25:22.687 回答
4

为了不让自己心痛,我赞同弗兰克关于只使用 FFMPEG 的建议。使用正确的参数执行单独的 FFMPEG 进程将 100% 成为实现编码目标的最简单方法。

您的其他选择包括:

libavcodec - FFMPEG 中使用的中央库。我警告说似乎没有很多可用的 libavcodec 的 Windows 二进制文件,因此您可能必须自己编译,这至少需要安装 Cygwin 或 MingW。

ffdshow-tryouts - 一个视频编解码器库,实现为基于 libavcodec 的 DirectShow 过滤器。他们似乎确实有一个用于操作它的API,但它是一个 .NET 库。

于 2009-07-15T04:35:05.117 回答
1

我建议查看VirtualDub源代码。这是一个众所周知的使用 VFW 的编码器。您也许可以从该软件中获得一些想法。

于 2009-07-15T04:05:36.110 回答