windows编译vlc
‘壹’ vlc的include文件夹在哪
VLC开发所需的库文件可以有2种获取方法:
1. 自行编译
2. 直接从安装目录里面拷贝出来
第一种方法难度要大一些。尤其是在Windows下编译VLC是个比较麻烦的事情。一般情况下可以选择第二种方法获取VLC开发所需的文件。
开发VLC所需的文件的位置:
1. 动态链接库*.dll:安装目录下的libvlc.dll,libvlccore.dll以及plugins目录下的所有文件。
PS:VLC支持非常多的plugin。因此plugins目录的体积确实是非常大的。
2. 静态链接库*.lib:安装目录/sdk/lib
3. 头文件*.h:安装目录/sdk/include
新建一个VC工程后,把上述三类文件分别拷贝至新工程目录下,并且配置它们的路径之后,就可以使用libVLC进行开发了。
‘贰’ 如何使 vlc 支持 fdk-aac 编码windows平台
可能是由于fdk-aac开源协议的原因,VLC默认是不支持fdk-aac编码的,fdk-aac 是非常优秀的AAC编码库,并且支持AAC-LD AAC-ELD, 对于要求低延迟的场景下很有用。
可以通过修改VLC的编译脚本,并加入fdkaac库来使用VLC支持fdkaac编码器。
我是在64位的ubuntu16.04下编译的,vlc的编译方法参考VLC官网的编译文档。
1 修改vlc/extras/package/win32/configure.sh , 加入--enable-fdkaac, 这样VLC就会编译fdkaac这个模块。
执行make,会出现编译错误
as/package/win32/../../../moles/codec/fdkaac.c:56:32: fatal error: fdk-aac/aacenc_lib.h: No such file or directory
这是因为缺少fdk-aac库相关的头文件。
2 编译fdk-aac库
下载源码https://github.com/mstorsjo/fdk-aac.git
在terminal下进入源码目录,输入
mkdir winBuild
cd winBuild
../configure --host=i686-w64-mingw32 --prefix=VLCPATH/contrib/i686-w64-mingw32
make install
VLCPATH 替换成VLC代码的路径
3 编译VLC代码
make packag-win32-zip
这时应该可以编译通过了, 在mole/codec/ 目录下会生成libfakaac_plugin.dll文件。
还需要把这个模块依赖的VLCPATH/contrib/i686-w64-mingw32/libfdk-aac-1.dll动态库复制到这个目录下。
现在VLC就可以支持fdk-aac编码了。
‘叁’ VLC源代码包如何在linux下编译+调试
你是为了装软件还是为了学习?如果只是装个软件,为什么不装二进制版的呢(.deb .rpm)。自己编译挺麻烦的。
如果非想自己编译,一般都是(我没编译过VLC,编译过其他的,感觉像VLC这么大的软件应该得较长时间!):先解压下载的源码包(tar.bz),然后从终端进入解压后的源码目录,在终端输入:一 ./configure ;二 make ;三 make install ;
一,好像是为了检查当前系统参数,也可以在后面加环境变量参数(./configure [options])。如果没问题便生成makefile
二,根据makefile编译
三,编译安装。(二,可省略)
其实,不管是windows还是linux下载了软件解压后第一件事是读readme!!!!!!!!!!!(其实你应该自己看readme和install,因为别人也不知道你下的软件什么情况,这两个文件一般都会告诉你怎样安装以及软件依赖什么包!!)
再是读install ,这是基本素质。要养成自觉性,这在linux下尤为重要!
至于调试,比较麻烦,不过如果只是装软件而不改代码的情况下,不用专门调试(难道你还要用专门工具调试?) 既然说是菜鸟,又稿这么复杂的东西,并且搞这么复杂的东西又不在更专业的地方提问,网络知道一般是解决日常问题的地方!!!
不过一般情况下执行上述三步时会报错,根据它报错情况自己想办法解决,一般来说是依赖不能满足!
‘肆’ vlc播放器是用什么写出来的
以下是编译VLC源代码时所需的库:
Third party libraries used by VLC
You'll find a complete list on the wiki.
But, here are the most important libraries.
Audio/Video codecs
liba52 - an ATSC A/52 (aka AC3) audio decoder
libmad - an MPEG audio decoder
libmpeg2 - an MPEG1/2 video decoder
libavcodec (ffmpeg) - an extensive audio/video codec library which supports several formats like MPEG4, H263, WMV/A etc...
libogg - an Ogg bitstream parser
libvorbis - a Vorbis audio decoder
libflac - a FLAC (Free Lossless Audio Codec) audio decoder
libspeex - a Speex (Free speech codec) audio decoder
libtheora - a Theora video decoder
libfaad2 - an AAC audio decoder
libdv - a DV video decoder (deprecated in favor of libavcodec)
libxvidcore (xvid) - an ISO MPEG-4 compliant video codec (deprecated in favor of libavcodec)
libdca - A DTS Coherent Acoustics decoding library.
GUI framework libraries
wxWidgets - a cross-platform C++ GUI framework that keeps the look and feel of each platform
QT4 - a C++ Cross-Platform Rich Client Development Framework
Audio/Video output libraries
libsdl - a cross-platform multimedia library designed to provide level access to audio, and 2D video framebuffer
Miscellaneous libraries
libdvdcss - a library for accessing encrypted DVDs
libdvdnav - a library for DVD navigation
libdvdread - a library for reading DVD-Video images
libdvbpsi - a library designed for decoding and generation of MPEG TS and DVB PSI tables
libopenslp - an open-source implementation of Service Location Protocol
gettext - a set of tools that provides a framework to help applications proce multi-lingual messages
libfreetype2 - a software font engine that is designed to be small, efficient, highly customizable and portable while capable of procing high-quality output (glyph images).
fribidi - A Free Implementation of the Unicode Bidirectional Algorithm
liveMedia - C++ libraries for multimedia streaming (RTP/RTCP, RTSP, SIP)
matroska - a new, extensible open standard Audio/Video container format
If you're using those libs to compile VLC for windows with mingw-gcc 3.3.1, you can use our Win32 contribs.
如果需要更权威的回答,这里是VLC官方提供的源码下载:
http://download.videolan.org/pub/vlc/
‘伍’ 编译VLC: 出现错误 non-system libraries in linker flags: -lhardware
开始然后点击运行,输入cmd,回车,在命令提示符下 直接复制以下命令,然后右键点击命令提示符,再点击粘贴
for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1
回车,滚动完毕后,再输入:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
回车!直到屏幕滚动停止为止,重启电脑 按照以上操作即可
‘陆’ 求windows编译vlc方法
不通过你减肥脱光计划你突然
‘柒’ windows平台下编译vlc,使用的是mingw+msys,到了make prebuilt,出现了pkg-config command not found
做这么专业的工作,还用WINDOWS。
‘捌’ 怎样编译 libvlc-qt windows
QtCreator是QT自带的开发工具,是学习QT非常好的参考资源.
本文提供对编译QtCreator的简单描述
(理论上官网发布的都是可以编译的,但实际编译时候会遇到一些问题,本文记录下解决方法)
编译环境:Windows 7 X64 + Visual Studio 2010 + qt5.0.2
编译过程:
1.解压缩qt-creator-2.7.0-src(源码从qt官网下载)
2.vs2010中,用qt vsaddin打开"qt-creator-2.7.0-src\qtcreator.pro",等待导入完成(需要一定时间,耐心等候)
3.执行编译。编译过程可能会有多种错误,包括
(a) 错误:找不到某个json文件。
解决方法:打开出错project,在工程中加入json文件就可以。
如果文件系统中不存在这个json文件,则从另外的目录拷贝一个过来,简单修改一下内容就可以。
(b) 错误:编译moc生成的cpp文件时,提示找不到某个.h文件。
解决方法:用ultraEdit打开出错的vcxproj文件,删除moc.h文件时参数中对该.h文件的强制引用,
(c) 错误:找不到DATA_PATH定义。
解决方法:查找出错工程属性中预定义变量列表,复制DATA_PATH的预定义内容到源代码中。
4.修改完编译错误后,重新编译。因为循环依赖问题,可能要重复多编译几次,最终编译成功。
5.vs2010中,F5运行qtcreator这个project。qtcreator运行成功,
但是会发现qtcreator中的Design标签页总是空的,要解决这个问题,继续执行以下步骤。
6.vs2010中,依次用qt vsaddin打开以下工程,并执行编译
"qt-creator-2.7.0-src\src\plugins\qmldesigner\qmldesigner.pro"
"qt-creator-2.7.0-src\src\plugins\qmlprojectmanager\qmlprojectmanager.pro"
"qt-creator-2.7.0-src\src\plugins\qmlprofiler\qmlprofiler.pro"
7.运行qtcreator,此时可以发现qtcreator和官网预编译的版本完全一样了。
‘玖’ vlc for android 源码能不能在windows环境下编译
1. 准备编译环境
基本上按照这篇wiki的介绍就足够了,为了顺利完成编译,建议首先保证相关的软件或者依赖库都已经下载好了,我再强调一下几个重点注意事项。
(1) Android SDK:必须使用SDK Platform Android 5.0, API 21,因为VLC-for-android用到了Android 5.0 的一些API。
(2) 最好通过apt-get install 把下面这些依赖的软件都安装一遍,或更新到最新版
git,apache-ant (or ant), autoconf, automake, autopoint, cmake,
gawk (or nawk), gcc, g++, libtool, m4, patch, pkg-config, ragel,
subversion, unzip.
2. 下载源码包
直接通过git下载VLC-for-android最新的源码即可:
git clone git://git.videolan.org/vlc-ports/android.git
3. 编译VLC源码和VLC Android工程
(1) 配置编译环境变量
具体参考wiki的介绍,你可以写个shell脚本来执行,避免每次编译都要配置,下面是我的环境变量,可以根据你的路径修改:
#! /bin/sh
export ANDROID_SDK=/opt/android/sdk/
export ANDROID_NDK=/opt/android/android-ndk-r10/
export ANT_DIR=/opt/android/ant/
export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools:$ANT_DIR
export ANDROID_ABI=armeabi-v7a
(2) 执行编译
sh compile.sh
VLC不愧是使用这么广泛的播放器,它的编译脚本写得非常强大和智能,直接通过执行compile.sh,它会自动check所有的依赖,并通过网络去下载缺失的库。
首先,它会下载vlc的源码,并存放在当前目录下。然后去下载依赖的第三方库文件。
当然,由于GFW的存在,有的时候下载会失败,这个时候,就需要你手动去Google搜索它正在下载的依赖文件,手动下载好了之后放到 vlc/contrib/tarballs目录下,然后再回到命令行重新执行 sh compile.sh
它依赖的全部第三方库文件如图所示:
(3) 编译问题
编译过程还算顺利,只出现过一个大问题,如下:
google/protobuf/unittest.proto:853:21: Missing field number.
google/protobuf/unittest.proto:862:1: Reached end of input in message definition (missing '}').
make[3]: *** [unittest_proto_middleman] Error 1
网上也搜不到解决方案,我看了下GitHub上Protobuf的Readme,然后下载了最新的protobuf放到vlc/contrib
/tarballs/contrib-android-arm-linux-androideabi/protobuf目录下,执行.
/configure --disable-shared,再编译,没想到就直接过了。
4. 加载VLC-For-Android的Java工程
编译通过后,就可以直接在vlc-android/bin目录下看到debug版的apk了,下面简单说说在Eclipse中加载vlc-android的整个工程。
打开Eclipse,选择Import,把vlc-for-android目录下所有的工程到导入到Eclipse中(我去掉了TV工程),如图所
示,有5个必须的工程,其中,VLC是主工程,其他四个都是Lib工程。没有什么意外的话,直接运行VLC工程,就可以在Android手机上看到VLC
播放器应用了!
‘拾’ windows平台下vlc编译出现缺少avformat、codec、swscal、mad库的情况,这是为什么呢
这东西要在 cygwin 里面编译是肯定的。
你在 cygwin 里面编译时,有些函数库不是放在了标准位置,这样的话需要 configure 时手动添加参数指定这些解码器库的位置才行。
一个新手就玩这么高深的编译过程,你想干嘛?
其实要我说,直接去下现成的 windows 版本不就行了,自己编译干什么?