环境
1.需要安装win7的SDK 并把最新的SDK路径添加到vs2008工程VS++目录中Include和Lib
2.需要最新的Direct Show
3.下载了源代码后 运行Build 进行更新代码
4. 编译代码 mplayerc工程
项目 mplayerc 主程序
Libraries
-->libpng png类库
-->zlib 压缩解压类库 以来
-->libssf ssf类库(字幕相关)
-->strmbaseRU.lib DirectShow类库 依赖
-->subtitles 字幕相关类库
-->
-->decss 视频解码类库
-->dsutil directshow 工具类库
-->subpic 视频解码类库
-->svplib
-->lyriclib 歌词匹配类库
--> id3lib mp3信息类库 依赖
-->sqlitepp sqlite++类库 sqlitepp是一个操作数据库的类库
-->foundation 运行程序 初步估计是修复程序
-->pcid 动态链接库
UI 界面
-->CmdUI MFC的更新命令UI机制提供了一个端口
-->error 1
-->ResizableLib 窗体库
-->sizecbar 编写MFC应用程序的窗口界面、控制条
-->TreePropSheet 树与多标签
Filters 过滤器
Muxer 混合器
-->wavdest
-->filters(Filter\Libraries\filters) 类库依赖
-->strmbaseRU.lib DirectShow类库 依赖
-->MatroskaMuxer
-->filters(Filter\Libraries\filters) 类库依赖
-->strmbaseRU.lib DirectShow类库 依赖
-->BaseMuxer
-->strmbaseRU.lib DirectShow类库 依赖
-->DSMMuxer
-->BaseMuxer类库 依赖
-->filters(Filter\Libraries\filters) 类库依赖
Parser 解析器
-->streamdrivethru
-->filters(Filter\Libraries\filters) 类库依赖
-->strmbaseRU.lib DirectShow类库 依赖
-->MatroskaSplitter
-->baseviderflitter 类库 依赖
-->basevideofilter 类库 依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->RealMediaSplitter
-->basesplitter
-->AviSplitter
-->RoQSplitter
-->basesplitter 类库依赖
-->OggSplitter
-->NutSplitter
-->basesplitter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->MpegSplitter
-->basesplitter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->DiracSplitter
-->basesplitter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->libdirac 类库依赖
-->MpaSplitter
-->basesplitter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->DSMSplitter
-->filters(Filter\Libraries\filters) 类库依赖
-->MP4Splitter
-->basesplitter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->zlib 类库依赖
-->FLVSplitter
-->basesplitter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->SSFSplitter
-->basesplitter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->EASplitter
-->WMVSplitter
Libraries 类库
-->libmad 基于mad解码库
-->zlib zlib是提供数据压缩用的函式库
-->liba52 一个 ATSC A/52 流媒体编码库
-->libdts 提供一个低级别的接口,使用DTS相干声学编码解码音频帧。常见的DVD,DTS音频CD和一些电台broadcastings的DTS相干声学流。libdts还提供各种输出配置的缩混和动态范围压缩。
-->libfaad 解码本地文件成PCM原始音频格式
-->libdirac 狄拉克是一个通用的视频编解码器针对从QCIF(180x144)的决议HDTV(1920×1080)逐行或隔行扫描。它采用小波变换,运动补偿和算术编码,目的是与其他国家的先进的编解码器上的竞争力。
-->filters(Filters\Libraries\filters) 过滤器
-->BaseClasses 基于DirectShow里面的开发包
-->libflac 无损音频编解码器
-->libvorbisidec 一个Ogg Vorbis音频解码器(也称为“震颤”),没有浮点运算的实现
Reader 读取
-->asyncreader 异步读取 可以读取网络上的编码后的视频数据
-->cddareader
-->asyncreader 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->cdxareader
-->asyncreader 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->vtsreader
-->asyncreader 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->udpreader
-->asyncreader 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
Transform 改造
-->avi2ac3filter
-->filters(Filter\Libraries\filters) 类库依赖
-->bufferfilter 缓冲区过滤器
-->decssfilter
-->Mpeg2DecFilter
-->basevideofilter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->libmpeg2 类库依赖
-->MPaDecFilter 主音频解码器
-->filters(Filter\Libraries\filters) 类库依赖
-->liba52 类库依赖
-->libdts 类库依赖
-->libfaad 类库依赖
-->libflac 类库依赖
-->libmad 类库依赖
-->libvorbisidc 类库依赖
-->basevideofilter 基本视频滤波器
-->MPCViderDec 主视频解码器
-->libflac 类库依赖
-->svpfilter
-->basevidefilter 类库依赖
Source 源
-->d2vsource
-->filters(Filter\Libraries\filters) 类库依赖
-->flicsource
-->filters(Filter\Libraries\filters) 类库依赖
-->libflac 类库依赖
-->basesource
-->dtsac3source
-->filters(Filter\Libraries\filters) 类库依赖
-->shoutcastsource
-->filters(Filter\Libraries\filters) 类库依赖
-->subtitlesource
-->filters(Filter\Libraries\filters) 类库依赖
-->flacsource
Switcher
-->audioswitcher 音频切换器
-->filters(Filter\Libraries\filters) 类库依赖
Misc
-->SyncClock 同步时钟
Render
-->MpcAudioRendererFilter MPC音频渲染器
主程序不依赖的库 其它程序的库
Libraries
-->yamlcpp
Transform
-->baseviderfilter
-->filters(Filter\Libraries\filters) 类库依赖
-->MPCVideoDec
Libaries
-->libavcodec
-->error
-->libmpeg2
1
出现Error “ICommDlgBrowser2”: 未定义基类
error C2504: “ICommDlgBrowser2”: 未定义基类
error C2504: “IFileDialogEvents”: 未定义基类
error C2061: 语法错误 : 标识符“FDE_SHAREVIOLATION_RESPONSE”
error C2061: 语法错误 : 标识符“FDE_OVERWRITE_RESPONSE”
error C2504: “IFileDialogControlEvents”: 未定义基类
error C2504: “ICommDlgBrowser2”: 未定义基类
error C2504: “IFileDialogEvents”: 未定义基类
error C2061: 语法错误 : 标识符“FDE_SHAREVIOLATION_RESPONSE”
error C2061: 语法错误 : 标识符“FDE_OVERWRITE_RESPONSE”
error C2504: “IFileDialogControlEvents”: 未定义基类
解决方法:(1). 在StdAfx.h中加入如下两行(针对windows xp系统,不同系统不一样) xp-> #define _WIN32_WINNT 0x0501 win7-> #define WINVER 0x0501
(2). shobjidl.h 文件在vc6和vc9中都有,两个文件是有一些区别,使用vc9中就不会有问题,查找到VC9 中shobjidl.h所在位置,加入到包含路径中,如将 C:/Program Files/Microsoft Visual Studio 9.0/VC/include 路径加入到包含路径中。(3). 引起这个问题的原因可能是如下http://www.rupeng.com/forum/thread-3214-1-1.html或 http://www.easewe.com/Article/document/879.htm
2
出现error MEDIASUBTYPE_DVB_SUBTITLES 未声明
解决方法 只需安装win7的SDK 注意包含顺序
3 libavcodec.lib error
1.需要安装win7的SDK 并把最新的SDK路径添加到vs2008工程VS++目录中Include和Lib
2.需要最新的Direct Show
3.下载了源代码后 运行Build 进行更新代码
4. 编译代码 mplayerc工程
项目 mplayerc 主程序
Libraries
-->libpng png类库
-->zlib 压缩解压类库 以来
-->libssf ssf类库(字幕相关)
-->strmbaseRU.lib DirectShow类库 依赖
-->subtitles 字幕相关类库
-->
-->decss 视频解码类库
-->dsutil directshow 工具类库
-->subpic 视频解码类库
-->svplib
-->lyriclib 歌词匹配类库
--> id3lib mp3信息类库 依赖
-->sqlitepp sqlite++类库 sqlitepp是一个操作数据库的类库
-->foundation 运行程序 初步估计是修复程序
-->pcid 动态链接库
UI 界面
-->CmdUI MFC的更新命令UI机制提供了一个端口
-->error 1
-->ResizableLib 窗体库
-->sizecbar 编写MFC应用程序的窗口界面、控制条
-->TreePropSheet 树与多标签
Filters 过滤器
Muxer 混合器
-->wavdest
-->filters(Filter\Libraries\filters) 类库依赖
-->strmbaseRU.lib DirectShow类库 依赖
-->MatroskaMuxer
-->filters(Filter\Libraries\filters) 类库依赖
-->strmbaseRU.lib DirectShow类库 依赖
-->BaseMuxer
-->strmbaseRU.lib DirectShow类库 依赖
-->DSMMuxer
-->BaseMuxer类库 依赖
-->filters(Filter\Libraries\filters) 类库依赖
Parser 解析器
-->streamdrivethru
-->filters(Filter\Libraries\filters) 类库依赖
-->strmbaseRU.lib DirectShow类库 依赖
-->MatroskaSplitter
-->baseviderflitter 类库 依赖
-->basevideofilter 类库 依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->RealMediaSplitter
-->basesplitter
-->AviSplitter
-->RoQSplitter
-->basesplitter 类库依赖
-->OggSplitter
-->NutSplitter
-->basesplitter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->MpegSplitter
-->basesplitter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->DiracSplitter
-->basesplitter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->libdirac 类库依赖
-->MpaSplitter
-->basesplitter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->DSMSplitter
-->filters(Filter\Libraries\filters) 类库依赖
-->MP4Splitter
-->basesplitter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->zlib 类库依赖
-->FLVSplitter
-->basesplitter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->SSFSplitter
-->basesplitter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->EASplitter
-->WMVSplitter
Libraries 类库
-->libmad 基于mad解码库
-->zlib zlib是提供数据压缩用的函式库
-->liba52 一个 ATSC A/52 流媒体编码库
-->libdts 提供一个低级别的接口,使用DTS相干声学编码解码音频帧。常见的DVD,DTS音频CD和一些电台broadcastings的DTS相干声学流。libdts还提供各种输出配置的缩混和动态范围压缩。
-->libfaad 解码本地文件成PCM原始音频格式
-->libdirac 狄拉克是一个通用的视频编解码器针对从QCIF(180x144)的决议HDTV(1920×1080)逐行或隔行扫描。它采用小波变换,运动补偿和算术编码,目的是与其他国家的先进的编解码器上的竞争力。
-->filters(Filters\Libraries\filters) 过滤器
-->BaseClasses 基于DirectShow里面的开发包
-->libflac 无损音频编解码器
-->libvorbisidec 一个Ogg Vorbis音频解码器(也称为“震颤”),没有浮点运算的实现
Reader 读取
-->asyncreader 异步读取 可以读取网络上的编码后的视频数据
-->cddareader
-->asyncreader 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->cdxareader
-->asyncreader 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->vtsreader
-->asyncreader 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->udpreader
-->asyncreader 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
Transform 改造
-->avi2ac3filter
-->filters(Filter\Libraries\filters) 类库依赖
-->bufferfilter 缓冲区过滤器
-->decssfilter
-->Mpeg2DecFilter
-->basevideofilter 类库依赖
-->filters(Filter\Libraries\filters) 类库依赖
-->libmpeg2 类库依赖
-->MPaDecFilter 主音频解码器
-->filters(Filter\Libraries\filters) 类库依赖
-->liba52 类库依赖
-->libdts 类库依赖
-->libfaad 类库依赖
-->libflac 类库依赖
-->libmad 类库依赖
-->libvorbisidc 类库依赖
-->basevideofilter 基本视频滤波器
-->MPCViderDec 主视频解码器
-->libflac 类库依赖
-->svpfilter
-->basevidefilter 类库依赖
Source 源
-->d2vsource
-->filters(Filter\Libraries\filters) 类库依赖
-->flicsource
-->filters(Filter\Libraries\filters) 类库依赖
-->libflac 类库依赖
-->basesource
-->dtsac3source
-->filters(Filter\Libraries\filters) 类库依赖
-->shoutcastsource
-->filters(Filter\Libraries\filters) 类库依赖
-->subtitlesource
-->filters(Filter\Libraries\filters) 类库依赖
-->flacsource
Switcher
-->audioswitcher 音频切换器
-->filters(Filter\Libraries\filters) 类库依赖
Misc
-->SyncClock 同步时钟
Render
-->MpcAudioRendererFilter MPC音频渲染器
主程序不依赖的库 其它程序的库
Libraries
-->yamlcpp
Transform
-->baseviderfilter
-->filters(Filter\Libraries\filters) 类库依赖
-->MPCVideoDec
Libaries
-->libavcodec
-->error
-->libmpeg2
1
出现Error “ICommDlgBrowser2”: 未定义基类
error C2504: “ICommDlgBrowser2”: 未定义基类
error C2504: “IFileDialogEvents”: 未定义基类
error C2061: 语法错误 : 标识符“FDE_SHAREVIOLATION_RESPONSE”
error C2061: 语法错误 : 标识符“FDE_OVERWRITE_RESPONSE”
error C2504: “IFileDialogControlEvents”: 未定义基类
error C2504: “ICommDlgBrowser2”: 未定义基类
error C2504: “IFileDialogEvents”: 未定义基类
error C2061: 语法错误 : 标识符“FDE_SHAREVIOLATION_RESPONSE”
error C2061: 语法错误 : 标识符“FDE_OVERWRITE_RESPONSE”
error C2504: “IFileDialogControlEvents”: 未定义基类
解决方法:(1). 在StdAfx.h中加入如下两行(针对windows xp系统,不同系统不一样) xp-> #define _WIN32_WINNT 0x0501 win7-> #define WINVER 0x0501
(2). shobjidl.h 文件在vc6和vc9中都有,两个文件是有一些区别,使用vc9中就不会有问题,查找到VC9 中shobjidl.h所在位置,加入到包含路径中,如将 C:/Program Files/Microsoft Visual Studio 9.0/VC/include 路径加入到包含路径中。(3). 引起这个问题的原因可能是如下http://www.rupeng.com/forum/thread-3214-1-1.html或 http://www.easewe.com/Article/document/879.htm
2
出现error MEDIASUBTYPE_DVB_SUBTITLES 未声明
解决方法 只需安装win7的SDK 注意包含顺序
3 libavcodec.lib error