编译libvlc。。。
https://wiki.videolan.org/Win32Compile按照官网教程,安装所需工具,参考 :http://qjw.qiujinwu.com/blog/2014/12/08/cross_build_vlc_in_linux
git vlc: git clone git://git.videolan.org/vlc.git vlc
vlc版本:3.0.0-git
cd vlc/contrib
mkdir win32 && cd win32
../bootstrap --host=i686-w64-mingw32make prebuilt
不知道要不要移除,反正我移除了:rm -f ../i686-w64-mingw32/bin/moc ../i686-w64-mingw32/bin/uic ../i686-w64-mingw32/bin/rcc
编译自己的ffmpeg来进一步缩小体积:下载ffmpeg2.5,另存为vlc/contrib/tarballs/ffmpeg-HEAD.tar.gz,去掉contrib/src中的其他目录,除了ffmpeg,gsm,lame,openjpeg,zlib及一些sh和mak文件,
make fetch,会下载gsm,lame,openjpeg,zlib的包。
修改contrib/src/ffmpeg/rules.mak:在中间加上下面一段,去掉不需要的解码器,复用器,协议等
- FFMPEGCONF += --enable-memalign-hack \
- --disable-decoders \
- --enable-decoder=mpeg4 \
- --enable-decoder=flv \
- --enable-decoder=h264 \
- --enable-decoder=wmv2 \
- --enable-decoder=wmv3 \
- --enable-decoder=rv40 \
- --enable-decoder=flac \
- --enable-decoder=mp3 \
- --enable-decoder=pcm_alaw \
- --enable-decoder=pcm_s8 \
- --enable-decoder=pcm_s8_planar \
- --enable-decoder=pcm_u16be \
- --enable-decoder=pcm_u16le \
- --enable-decoder=pcm_u8 \
- --enable-decoder=pcm_mulaw \
- --enable-decoder=pcm_s16be \
- --enable-decoder=pcm_s16le \
- --enable-decoder=pcm_s16le_planar \
- --enable-decoder=ac3 \
- --enable-decoder=aac \
- --enable-decoder=ape \
- --enable-decoder=wmav2 \
- --enable-decoder=vorbis \
- --enable-decoder=mp1 \
- --enable-decoder=mp2 \
- --disable-demuxers \
- --enable-demuxer=aac \
- --enable-demuxer=ac3 \
- --enable-demuxer=pcm_u8 \
- --enable-demuxer=ape \
- --enable-demuxer=asf \
- --enable-demuxer=rm \
- --enable-demuxer=m4v \
- --enable-demuxer=avi \
- --enable-demuxer=mov \
- --enable-demuxer=mp3 \
- --enable-demuxer=mtv \
- --enable-demuxer=mv \
- --enable-demuxer=ogg \
- --enable-demuxer=flac \
- --enable-demuxer=wav \
- --enable-demuxer=h264 \
- --enable-demuxer=flv \
- --enable-demuxer=matroska \
- --disable-protocols \
- --disable-hwaccels
修改contrib/win32/config.mak:
- BUILD := x86_64-linux-gnu
- HOST := i686-w64-mingw32
- PKGS_DISABLE :=
- PKGS_ENABLE :=
- BUILD_DISCS := 1
- #BUILD_ENCODERS := 1
- #BUILD_NETWORK := 1
- GPL := 1
- HAVE_WIN32 := 1
- ENABLE_SMALL := 1
在contrib/win32目录make,会编译精简版的ffmpeg,生成的.o会替换掉contrib/i686-w64-mingw32的同名文件。链接的时候会链接自己编译的链接库。
cd 到vlc的根目录
mkdir win32 && cd win32
添加pkgconfig路径,不然编译vlc的时候会找不到外部库:
export PKG_CONFIG_LIBDIR=$HOME/vlc/contrib/i686-w64-mingw32/lib/pkgconfig
编译vlc:
- export CFLAGS="-O2"
- export CXXFLAGS="-O2"
- ../extras/package/win32/configure.sh --host=i686-w64-mingw32 \
- --disable-debug \
- --disable-gprof \
- --disable-cprof \
- --disable-lua \
- --disable-sout \
- --disable-httpd \
- --disable-vlm \
- --disable-archive \
- --disable-live555 \
- --disable-dc1394 \
- --disable-dv1394 \
- --disable-linsys \
- --disable-dvdread \
- --disable-dvdnav \
- --disable-bluray \
- --disable-chromaprint \
- --disable-chromecast \
- --disable-qt \
- --disable-skins2 \
- --disable-x265 \
- --disable-gnutls \
- --disable-taglib \
- --disable-opencv \
- --disable-smbclient \
- --disable-dsm \
- --disable-sftp \
- --disable-v4l2 \
- --disable-decklink \
- --disable-gnomevfs \
- --disable-vcdx \
- --disable-vcd \
- --disable-screen \
- --disable-libcddb \
- --disable-vnc \
- --disable-freerdp \
- --disable-realrtsp \
- --disable-macosx-eyetv \
- --disable-macosx-qtkit \
- --disable-macosx-avfoundation \
- --disable-silent-rules \
- --disable-asdcp \
- --disable-dvbpsi \
- --disable-gme \
- --disable-shout \
- --disable-mod \
- --disable-mpc \
- --disable-omxil \
- --disable-omxil-vout \
- --disable-mad \
- --disable-shine \
- --disable-gst-decode \
- --disable-crystalhd \
- --disable-postproc \
- --disable-vpx \
- --disable-faad \
- --disable-fdkaac \
- --disable-quicktime \
- --disable-dca \
- --disable-gles2 \
- --disable-gles1 \
- --disable-tremor \
- --disable-rpi-omxil \
- --disable-macosx-quartztext \
- --disable-android-surface \
- --disable-macosx \
- --disable-minimal-macosx \
- --disable-macosx-dialog-provider \
- --disable-directfb \
- --disable-x26410b \
- --disable-aa \
- --disable-alsa \
- --disable-jack \
- --disable-update-check \
- --disable-fluidsynth \
- --disable-ncurses \
- --disable-opus \
- --disable-sdl \
- --disable-sdl-image \
- --disable-opensles \
- --disable-png \
- --disable-jpeg \
- --disable-zvbi \
- --disable-telx \
- --disable-libtar \
- --disable-libxml2 \
- --disable-sid \
- --disable-kva \
- --disable-merge-ffmpeg \
- --disable-samplerate \
- --disable-directx \
- --disable-daala \
- --disable-mfx \
- --disable-vda \
- --disable-dxva2 \
- --disable-flac \
- --disable-mpg123 \
- --disable-vorbis \
- --disable-mkv \
- --disable-a52 \
- --disable-libmpeg2 \
- --disable-theora \
- --disable-x264 \
- --disable-twolame \
- --disable-glx \
- --disable-ogg \
- --disable-mux_ogg \
- --disable-x262 \
- --disable-growl \
- --disable-macosx-vlc-app \
- --disable-chromaprint \
- --disable-chromecast \
- --disable-audioqueue \
- --disable-libgcrypt \
- --disable-aribsub \
- --disable-aribb25 \
- --disable-kate \
- --disable-tiger \
- --disable-xcb \
- --disable-xvideo \
- --disable-vdpau \
- --disable-wayland \
- --disable-svg \
- --disable-svgdec \
- --disable-mmal \
- --disable-speex \
- --disable-schroedinger \
- --disable-atmo \
- --disable-glspectrum \
- --disable-libass \
- --disable-udev \
- --disable-mtp \
- --disable-upnp \
- --disable-bonjour \
- --disable-goom \
- --disable-projectm \
- --disable-vsxu \
- --with-libiconv-prefix
会需要一些库,自己添加比如iconv,然后
make package-win-common,会把编译好的所有文件放到vlc/win32/vlc-版本号 文件夹中,进入上述文件夹中:
find . -name "*.dll" -type f | xargs -i strip --strip-all {}
去掉dll中的调试信息。
生成的所有所需插件都在plugins中,经过筛选,仅留下下列dll:
libavformat_plugin.dll
libavcodec_plugin.dll
libfilesystem_plugin.dll
libdirect3d_plugin.dll
libdrawable_plugin.dll
libwaveout_plugin.dll
libaudio_format_plugin.dll
libpacketizer_flac_plugin.dll
转载:http://blog.csdn.net/sx5486510/article/details/43117559
编译libvlc。。。的更多相关文章
- SDK "iphoneos" cannot be located
在MAC下,交叉编译libvlc出现的一些问题和解决方法.项目中使用了libvlc开源库.在执行编译脚本中,遇到一句xcrun --sdk iphoneos --show-sdk-path报错 mac ...
- VLC框架分析
功能部份:VLC媒体播放器的核心是libvlc ,它提供了界面,应用处理功能,如播放列表管理,音频和视频解码和输出,线程系统.所有libvlc源文件设在的/src目录及其子目录:# config/ ...
- vlc-android native调试配置
1, 按照官网给出的链接,git clone代码,配置好android sdk,ndk...后运行compile.sh; 2, 出现一个protobuf相关的问题(貌似要求protobuf3),自己去 ...
- C语言基于GTK+Libvlc实现的简易视频播放器
小编心语:现下,各种视频播放软件层出不穷,竞争也越演越烈,不知道大家有木有这个想法,小编有时在想能不能做一款属于自己的视频播放器呢~小编特意去实验楼,整理出了这篇关于如何实现简易视频播放器的博文.简易 ...
- ubuntu下编译VLC
ubuntu下编译VLC 标签(空格分隔): ubuntu vlc 视频 编译 [TOC] 1.下载VLC源码包并解压 VLC的源码包在VLC的官网有,可以直接下载.也可以使用git来clone一个. ...
- vlc android 移植版编译
同步发表于http://avenwu.net/2015/07/27/vlc-android-compiling 安装必备工具/解决环境问题 环境准备什么的如果没配置过需要一步步配置,主要是sdk/nd ...
- VLC编译问题
在Ubuntu下编译VLC源代码生成的VLC无法播放Youtube视频(比如https://www.youtube.com/watch?v=mDp-ABzpRX8) 错误提示如下: zlf@ubunt ...
- 在Eclipse下导入vlc-android并编译
在Ubuntu14.04下载好了VLC的源代码后,VLC的Eclipseproject存放在"vlc-android"文件夹 root@dzt-VirtualBox:/home/d ...
- 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...
随机推荐
- Task.Factory.StartNew多线程中将数值实时传递到UI显示
private void button1_Click(object sender, EventArgs e) { Task t1 = Task.Factory.StartNew(() => k1 ...
- 2017-4-18 关于小组APP
演讲: 各位合作伙伴:我们的产品:图书鉴赏是为了解决18岁到28岁青年的痛苦,他们需要更好的图书推荐,更多的好书,但是现有的方案并没有能很好的解决这些需求,我们有独特的办法制作一个图书鉴赏的APP,它 ...
- 了解权限控制框架shiro 之实际应用.
Apache Shiro 1.权限控制分为 a.粗粒度 URL 级别权限控制 b.细粒度方法级别权限控制 2.使用shiro进行权限控制主要有四种主要方式 : a. 在程序中 通过 Subje ...
- 场景报错Error -27492: "HttpSendRequest" failed, Windows error code=12029 (cannot connect) and retry limit (0) exceeded for URL=""
1.现象:loadrunner场景执行,tps图是一段很平稳,然后直线触底,一段时间,直线恢复平稳,触底这段时间报错信息如下: Action.c(6): Error -27492: "Htt ...
- node——buffer
buffe方便数据的传输,可一次性传输一部分数据一.类型介绍1.javascript语言没有读取或操作二进制数据的机制.2.Node.js中引入了Buffer类型可以使我们操作TCP流或文件流3.Bu ...
- Python笔记2----包、模块、库、条件循环
包.模块.库 包指的是 : 文件夹 模块和库就是.py文件. 其中,库是一些功能相同的模块的集合,其也是模块. 1.import 模块 2.form 库 import 模块 3.import 包.子包 ...
- Python基础学习_01修改代码所属作者
1.修改开头的作者Author 2.具体步骤如下图 (1)点击下图所画的按钮 (2)具体操作如图所示,就可以得到自己想要的结果了.
- Django之瀑布流
一. 小功能瀑布流的实现 1.完成效果图 2.代码部分 <1>models.py from django.db import models # Create your models her ...
- [poj 3666] Making the Grade (离散化 线性dp)
今天的第一题(/ω\)! Description A straight dirt road connects two fields on FJ's farm, but it changes eleva ...
- Tensorflow读取文件到队列文件
TensorFlow读取二进制文件数据到队列 2016-11-03 09:30:00 0个评论 来源:diligent_321的博客 收藏 我要投稿 TensorFlow是一种 ...