编译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:在中间加上下面一段,去掉不需要的解码器,复用器,协议等

[plain] view plaincopy

  1. FFMPEGCONF +=  --enable-memalign-hack \
  2. --disable-decoders \
  3. --enable-decoder=mpeg4 \
  4. --enable-decoder=flv \
  5. --enable-decoder=h264 \
  6. --enable-decoder=wmv2 \
  7. --enable-decoder=wmv3 \
  8. --enable-decoder=rv40 \
  9. --enable-decoder=flac \
  10. --enable-decoder=mp3 \
  11. --enable-decoder=pcm_alaw \
  12. --enable-decoder=pcm_s8 \
  13. --enable-decoder=pcm_s8_planar \
  14. --enable-decoder=pcm_u16be \
  15. --enable-decoder=pcm_u16le \
  16. --enable-decoder=pcm_u8 \
  17. --enable-decoder=pcm_mulaw \
  18. --enable-decoder=pcm_s16be \
  19. --enable-decoder=pcm_s16le \
  20. --enable-decoder=pcm_s16le_planar \
  21. --enable-decoder=ac3 \
  22. --enable-decoder=aac \
  23. --enable-decoder=ape \
  24. --enable-decoder=wmav2 \
  25. --enable-decoder=vorbis \
  26. --enable-decoder=mp1 \
  27. --enable-decoder=mp2 \
  28. --disable-demuxers \
  29. --enable-demuxer=aac \
  30. --enable-demuxer=ac3 \
  31. --enable-demuxer=pcm_u8 \
  32. --enable-demuxer=ape \
  33. --enable-demuxer=asf \
  34. --enable-demuxer=rm \
  35. --enable-demuxer=m4v \
  36. --enable-demuxer=avi \
  37. --enable-demuxer=mov \
  38. --enable-demuxer=mp3 \
  39. --enable-demuxer=mtv \
  40. --enable-demuxer=mv \
  41. --enable-demuxer=ogg \
  42. --enable-demuxer=flac \
  43. --enable-demuxer=wav \
  44. --enable-demuxer=h264 \
  45. --enable-demuxer=flv \
  46. --enable-demuxer=matroska \
  47. --disable-protocols \
  48. --disable-hwaccels

修改contrib/win32/config.mak:

[plain] view plaincopy

  1. BUILD := x86_64-linux-gnu
  2. HOST := i686-w64-mingw32
  3. PKGS_DISABLE :=
  4. PKGS_ENABLE :=
  5. BUILD_DISCS := 1
  6. #BUILD_ENCODERS := 1
  7. #BUILD_NETWORK := 1
  8. GPL := 1
  9. HAVE_WIN32 := 1
  10. 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:

[plain] view plaincopy

  1. export CFLAGS="-O2"
  2. export CXXFLAGS="-O2"
  3. ../extras/package/win32/configure.sh --host=i686-w64-mingw32 \
  4. --disable-debug \
  5. --disable-gprof \
  6. --disable-cprof \
  7. --disable-lua \
  8. --disable-sout \
  9. --disable-httpd \
  10. --disable-vlm \
  11. --disable-archive \
  12. --disable-live555 \
  13. --disable-dc1394 \
  14. --disable-dv1394 \
  15. --disable-linsys \
  16. --disable-dvdread \
  17. --disable-dvdnav \
  18. --disable-bluray \
  19. --disable-chromaprint \
  20. --disable-chromecast \
  21. --disable-qt \
  22. --disable-skins2 \
  23. --disable-x265 \
  24. --disable-gnutls \
  25. --disable-taglib \
  26. --disable-opencv \
  27. --disable-smbclient \
  28. --disable-dsm \
  29. --disable-sftp \
  30. --disable-v4l2 \
  31. --disable-decklink \
  32. --disable-gnomevfs \
  33. --disable-vcdx \
  34. --disable-vcd \
  35. --disable-screen \
  36. --disable-libcddb \
  37. --disable-vnc \
  38. --disable-freerdp \
  39. --disable-realrtsp \
  40. --disable-macosx-eyetv \
  41. --disable-macosx-qtkit \
  42. --disable-macosx-avfoundation \
  43. --disable-silent-rules \
  44. --disable-asdcp \
  45. --disable-dvbpsi \
  46. --disable-gme \
  47. --disable-shout \
  48. --disable-mod \
  49. --disable-mpc \
  50. --disable-omxil \
  51. --disable-omxil-vout \
  52. --disable-mad \
  53. --disable-shine \
  54. --disable-gst-decode \
  55. --disable-crystalhd \
  56. --disable-postproc \
  57. --disable-vpx \
  58. --disable-faad \
  59. --disable-fdkaac  \
  60. --disable-quicktime  \
  61. --disable-dca \
  62. --disable-gles2 \
  63. --disable-gles1 \
  64. --disable-tremor \
  65. --disable-rpi-omxil \
  66. --disable-macosx-quartztext  \
  67. --disable-android-surface  \
  68. --disable-macosx \
  69. --disable-minimal-macosx \
  70. --disable-macosx-dialog-provider \
  71. --disable-directfb \
  72. --disable-x26410b \
  73. --disable-aa  \
  74. --disable-alsa \
  75. --disable-jack \
  76. --disable-update-check \
  77. --disable-fluidsynth \
  78. --disable-ncurses \
  79. --disable-opus \
  80. --disable-sdl \
  81. --disable-sdl-image \
  82. --disable-opensles \
  83. --disable-png \
  84. --disable-jpeg \
  85. --disable-zvbi \
  86. --disable-telx \
  87. --disable-libtar \
  88. --disable-libxml2 \
  89. --disable-sid \
  90. --disable-kva \
  91. --disable-merge-ffmpeg \
  92. --disable-samplerate \
  93. --disable-directx \
  94. --disable-daala \
  95. --disable-mfx \
  96. --disable-vda \
  97. --disable-dxva2 \
  98. --disable-flac \
  99. --disable-mpg123 \
  100. --disable-vorbis \
  101. --disable-mkv \
  102. --disable-a52 \
  103. --disable-libmpeg2 \
  104. --disable-theora \
  105. --disable-x264 \
  106. --disable-twolame \
  107. --disable-glx \
  108. --disable-ogg \
  109. --disable-mux_ogg \
  110. --disable-x262 \
  111. --disable-growl \
  112. --disable-macosx-vlc-app \
  113. --disable-chromaprint \
  114. --disable-chromecast \
  115. --disable-audioqueue \
  116. --disable-libgcrypt \
  117. --disable-aribsub \
  118. --disable-aribb25 \
  119. --disable-kate \
  120. --disable-tiger \
  121. --disable-xcb \
  122. --disable-xvideo \
  123. --disable-vdpau \
  124. --disable-wayland \
  125. --disable-svg \
  126. --disable-svgdec \
  127. --disable-mmal \
  128. --disable-speex \
  129. --disable-schroedinger \
  130. --disable-atmo \
  131. --disable-glspectrum \
  132. --disable-libass \
  133. --disable-udev \
  134. --disable-mtp \
  135. --disable-upnp \
  136. --disable-bonjour \
  137. --disable-goom \
  138. --disable-projectm \
  139. --disable-vsxu \
  140. --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

时间: 2024-08-28 20:12:40

编译libvlc。。。的相关文章

libvlc外部api的简单整理(转载)

libvlc.h 定义了libvlc的外部api,引用这个头文件就可以把VLC嵌入到我们的程序里面了. libvlc的对象必须先被初始化之后才能被使用. libvlc core libvlc_new() 用于初始化一个libvlc的实例,argc表示参数的个数,argv表示参数,返回创建的实例若当发生错误时返回NULL libvlc_release()用于销毁一个libvlc的实例 libvlc error handling libvlc_errmsg()返回的是在idaoyong线程中产生的最

VLC框架分析

功能部份:VLC媒体播放器的核心是libvlc ,它提供了界面,应用处理功能,如播放列表管理,音频和视频解码和输出,线程系统.所有libvlc源文件设在的/src目录及其子目录:# config/ :从命令行和配置文件加载配置,提供功能模块的读取和写入配置 # control/: 提供动作控制功能,如播放/暂停,音量管理,全屏,日志等. # extras/: 大多是平台的特殊代码 # modules/: 模块管理 # network/: 提供网络接口(socket管理,网络错误等) # osd/

vlc源码分析(一) vlc-android native调试配置

http://www.cnblogs.com/jiayayao/p/6770479.html 1, 按照官网给出的链接,git clone代码,配置好android sdk,ndk...后运行compile.sh; 2, 出现一个protobuf相关的问题(貌似要求protobuf3),自己去网站下载后安装,即可编译通过; 3, 还是找个能上外网的,或者能FQ的帐号吧,编译过程中会下载好多与google相关的软件,为了避免出现意想不到的错误,你懂的; 4, 配置vlc-android:点击Edi

最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器

本文记录使用libVLC的开发的最简单的视频播放器示例.VLC Media Player是一款优秀的播放器,但是由于它的源代码编译的难度比较大,一直没有深入研究过它的开发方面的技术.此前触到了一些VLC开发方面的东西,因此总结了一下libVLC的开发示例程序. 如何获取VLC的SDK VLC开发所需的库文件可以有2种获取方法: 1. 自行编译2. 直接从安装目录里面拷贝出来 第一种方法难度要大一些.尤其是在Windows下编译VLC是个比较麻烦的事情.一般情况下可以选择第二种方法获取VLC开发所

【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)

作者 : 韩曙亮  博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csdn.net/shulianghan VLC 二次开发 视频教程 : http://edu.csdn.net/course/detail/355 博客总结 : -- 本博客目的 : 让 Android 开发者通过看本博客能够掌握独立移植 VLC Media Player 核心框架到自己的 app 中,

C语言基于GTK+Libvlc实现的简易视频播放器

小编心语:现下,各种视频播放软件层出不穷,竞争也越演越烈,不知道大家有木有这个想法,小编有时在想能不能做一款属于自己的视频播放器呢~小编特意去实验楼,整理出了这篇关于如何实现简易视频播放器的博文.简易播放器,你值得拥有~ 友情提示:这里只是前篇,只是一些简单的功能,其他功能将会在后篇为大家介绍-- C语言基于GTK+Libvlc实现的简易视频播放器 一.课程说明 如果你学习过之前上线的pygtk实现有道词典的项目课,那应该对gtk的使用有一些了解了,这个项目课学起来会相对轻松一些. 关于Gtk或

VLC-开源播放器编译

http://blog.sina.com.cn/s/blog_7b9d64af0101jpvy.html 需要VLC 在iOS开发中,如果你的程序中播放视频,并且多媒体播放功能是你iOS程序的核心功能! 那么,你需要这一款播放器! 它支持m3u8.rtsp.rtmp.MP4.flv…… 多种格式!绝对比苹果自带的播放器给力的多吧!那么,可行而知,使用VLC播放器,那你的iOS应用就显的牛X太多!!! 我为编译VLC播放器,不懈努力了整整3个无眠的夜晚!擦!写下此编译过程,希望能够让别人少走弯路!

转:基于libVLC的视频播放器

本文来自于:http://blog.csdn.net/leixiaohua1020/article/details/42363079 ? 最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器 本文记录使用libVLC的开发的最简单的视频播放器示例.VLC Media Player是一款优秀的播放器,但是由于它的源代码编译的难度比较大,一直没有深入研究过它的开发方面的技术.此前触到了一些VLC开发方面的东西,因 此总结了一下libVLC的开发示例程序. 如何获取VLC的SDK VL

VLCKit编译脚本的防坑修改

前言:编译过VLC的朋友们可能都知道,整个流程编译下来,在没任何错误的情况下基本上需要3到4个小时,网速慢点的可能需要7-8个小时,如果中途出现错误,很可能需要重新来过,那么有什么方法可以防坑呢? 作者在尝试编译多次VLC之后总结和修改了编译脚本. 据我观察,编译VLC的时候,大部分时间都会消耗在buildMobileVLCKit.sh 文件中153行附近的 git clone git://git.videolan.org/vlc.git vlc 这行代码上. 所以防坑的原则就是修改脚本只执行这