我正在使用SDL打开一个窗口并处理事件。和OpenGL将我的对象渲染到屏幕上。 SDL_mixer用于声音,SDL_ttf用于文本。现在,我正在试图弄清楚如何将视频显示出来。就像动画徽标或游戏开始之前的东西一样。只是为了试验它。在某些时候我需要知道它......
我发现并尝试安装FFMPEG,我已经包含了“include”文件夹,并设置了“lib”文件夹。起初我得到一个错误,告诉我它无法加载“inttypes.h”。所以我下载了一个包,并把它放在FFMPEG的include文件夹中。
现在我遇到了这个错误,我似乎无法解决这个问题。
C:\程序 文件\ FFMPEG-20140507-GIT-4cdea92-Win64的-dev的\包括\ libavutil \ COMMON.H(87): 致命错误C1004:发现意外的文件结尾
另一个问题是,是否有其他可用的库可以更容易用于显示简单的视频?我读到了一些关于SDL可以做到的事情,但没有找到任何关于它的信息。
编辑:这是第78到96行:
#if FF_API_AV_REVERSE
extern attribute_deprecated const uint8_t av_reverse[256];
#endif
#ifdef HAVE_AV_CONFIG_H
# include "config.h"
# include "intmath.h"
#endif
/* Pull in unguarded fallback defines at the end of this file. */
#include "common.h"
#ifndef av_log2
av_const int av_log2(unsigned v);
#endif
#ifndef av_log2_16bit
av_const int av_log2_16bit(unsigned v);
#endif
答案 0 :(得分:1)
Wrap your #include <libav*.h>
s inside a block like this:
#ifndef __STDC_CONSTANT_MACROS
#define __STDC_CONSTANT_MACROS
#define UNDEFINE_STDC_CONSTANT_MACROS
#endif
extern "C"
{
#include <libavdevice/avdevice.h>
#include <libavdevice/version.h>
}
#ifdef UNDEFINE_STDC_CONSTANT_MACROS
#undef __STDC_CONSTANT_MACROS
#endif
可能一种使用UNDEFINE_STDC_CONSTANT_MACROS
黑客的方法,但逻辑现在不是来找我。
使用Zeranoe's 32-bit ffmpeg development binaries和msinttypes' inttypes.h
在VS2012上为我工作。
答案 1 :(得分:0)
嗯,我找到了DLL文件,它给了我64位库的链接器错误。 我改回32位和32位dll,它工作正常。我想图书馆会问你是否有Windows的32/64位Visual Studio insite。