我有一个视频解密库,可以解码过时的视频格式,并通过回调函数返回WAV中的BMP和音频视频帧。现在我需要在Windows下以任何标准格式编码一个新视频。如何在Visual C中编码视频?
什么可能是这样做的标准方法?我正在使用Win32/C。我猜Windows有它自己的编码库和驱动程序,我不需要使用FFMPEG。任何指向示例代码的指针,或者至少是指向库的指针都会非常有帮助。
编辑:我接受。 FFMPEG是最简单的方法。
我有一个视频解密库,可以解码过时的视频格式,并通过回调函数返回WAV中的BMP和音频视频帧。现在我需要在Windows下以任何标准格式编码一个新视频。如何在Visual C中编码视频?
什么可能是这样做的标准方法?我正在使用Win32/C。我猜Windows有它自己的编码库和驱动程序,我不需要使用FFMPEG。任何指向示例代码的指针,或者至少是指向库的指针都会非常有帮助。
编辑:我接受。 FFMPEG是最简单的方法。
在Windows上,您有两个本地选项。
这当然可以通过DirectShow实现,但是您最好享受COM编程以及过滤器,图形和Monikers(哦我的)的概念。请参见本教程速成班:
我会建议看看VirtualDub的源代码。这是使用VFW的众所周知的编码器。您可以从该软件中获得一些想法。
为了节省自己的心痛,我回应弗兰克的建议,只是使用FFMPEG。使用正确的参数执行单独的FFMPEG进程将100%成为实现编码目标的最简单方法。
你的其他选择包括:
libavcodec - FFMPEG中使用的中央图书馆。我警告说,似乎没有可用的libavcodec许多Windows二进制文件,因此您可能必须编译自己的文件,至少需要设置Cygwin或MingW。
ffdshow-tryouts - 基于libavcodec实现为DirectShow过滤器的视频编解码器库。他们似乎有一个API来操纵它,但它是一个.NET库。