• 编译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在CODE上查看代码片派生到我的代码片
     
    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在CODE上查看代码片派生到我的代码片
     
    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在CODE上查看代码片派生到我的代码片
     
    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

  • 相关阅读:
    计算机网络
    JAVA基础--面试用
    springboot-高级(一)
    SQL语句(一)
    spring cloud
    ruoyi后台管理系统分析(六)----system包
    ruoyi后台管理系统分析(五)---quartz包
    Java基于opencv实现图像数字识别(一)
    Leetcode : eImplement strStr
    二叉树的前序、中序、后序遍历迭代实现
  • 原文地址:https://www.cnblogs.com/canphp/p/4475514.html
Copyright © 2020-2023  润新知