代码之家  ›  专栏  ›  技术社区  ›  CDR

如何在Visual C中对视频进行编码?

  •  2
  • CDR  · 技术社区  · 16 年前

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

    做这件事的标准方法是什么?我正在使用win32/c。我想Windows有自己的编码库和驱动程序,我不需要使用ffmpeg。任何指向示例代码或至少指向要查看的库的指针都将非常有用。

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

    3 回复  |  直到 15 年前
        1
  •  5
  •   Frank Krueger    16 年前

    在Windows上,您有两个本地选项。

    1. 老年人 Windows Multimedia 图书馆太古老了,不能认真考虑,但确实有 Video Compression Manager .
    2. 然后还有 DirectShow .

    它当然可以通过DirectShow实现,但是您最好喜欢COM编程和过滤器、图形和名字(Oh my)的概念。参见本教程了解速成课程:

    Recompressing an AVI File

    以及 MSDN documentation .

    一个更简单的方法确实是使用类似 FFMPEG VLC .

        2
  •  4
  •   Falaina    16 年前

    为了让自己省心,我附和了弗兰克关于使用ffmpeg的建议。使用正确的参数执行单独的ffmpeg过程将是实现编码目标的最简单方法。

    其他选项包括:

    libavcodec -在ffmpeg中使用的中央库。我警告说,似乎没有很多libavcodec的Windows二进制文件可用,因此您可能需要编译自己的,这至少需要设置cygwin或mingw。

    ffdshow-tryouts -一个视频编解码器库,作为基于libavcodec的DirectShow筛选器实现。他们确实有 API 它是一个.NET库。

        3
  •  1
  •   Chris Thompson    16 年前

    我建议你看看 VirtualDub 源代码。它是一个使用VFW的著名编码器。你也许能从那个软件中得到一些想法。