【Codecs】VLC开源播放器以及源码编译

Date: 2018.5.31


1、参考:

http://xhc66.iteye.com/blog/797291

2、VLC简介

VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。
下载地址:
http://www.videolan.org/videolan/

3、VLC源码编译:

3.1 Windows平台编译

第一步,要创建编译VLC的环境。VLC在Windows下可以用Msys+MingW 或者Cygwin的方式来编译,二者大同小异,这里主要介绍Cygwin。
Cygwin是一个在Windows下面模拟Linux环境的东西。它提供了很多库和应用程序,让你可以像在Linux上一样来使用Windows。
第一次安装,除了默认的库以外,我们还需要加入一些库来支持VLC的编译,包括 Archive (目录) 、 unzip、 zip 、 Devel 、 autoconf 、automake 、binutils 、 cvs 、expat 、gcc 等。

然后是下载所需要版本的VLC的源代码。对于Release版本,可以从这里下载:http://download.videolan.org/pub/videolan/vlc/,如果你需要下载实时最新的库,就要从VLC的源码库上取下来了。现在VLC改用git了,使用命令: git clone git://git.videolan.org/vlc.git

VLC还需要很多第三方的库,你可以取得源码来编译,这部分可以参考Linux上的VLC编译的文章。在Windows上VLC做了一个编译好的win32第三方库的包,可以从http://download.videolan.org/pub/testing/win32/ 下载。包需要解压到根目录 ‘/’,事实上这些库都位于’/usr/win32-branch’里边。

在cygwin中进入vlc的主目录,运行bootstrap,’./bootstrap’。在等待它结束之前,我们先来看一下如何配置VLC的编译。运行 ‘./configure -h >cfg_opt.txt’就可以把配置的选项信息都输出到 cfg_opt.txt中,然后慢慢来研究。里面大多是启用、禁用某些特性和功能模块,或者配置某些模块需要的库的路径等信息。为了方便可以写一个简单的脚本来做这件事,当然这个不是必需的。
PATH=/usr/win32-branch/bin:$PATH
PKG_CONFIG_PATH=/usr/win32-branch/lib/pkgconfig
CPPFLAGS=”-I/usr/win32-branch/include -I/usr/win32-branch/include/ebml”
LDFLAGS=-L/usr/win32-branch/lib
CC=”gcc -mno-cygwin” CXX=”g++ -mno-cygwin”
./configure
–host=i686-pc-mingw32
–disable-gtk
–enable-nls –enable-sdl –with-sdl-config-path=/usr/win32-branch/bin
–enable-ffmpeg –with-ffmpeg-mp3lame –with-ffmpeg-faac
–with-ffmpeg-zlib –enable-faad –enable-flac –enable-theora
–with-wx-config-path=/usr/win32-branch/bin
–with-freetype-config-path=/usr/win32-branch/bin
–with-fribidi-config-path=/usr/win32-branch/bin
–enable-live555 –with-live555-tree=/usr/win32-branch/live.com
–enable-caca –with-caca-config-path=/usr/win32-branch/bin
–with-xml2-config-path=/usr/win32-branch/bin
–with-dvdnav-config-path=/usr/win32-branch/bin
–disable-cddax –disable-vcdx –enable-goom
–enable-twolame –enable-dvdread
–enable-release –enable-dca
–enable-mkv
–enable-quicktime –enable-mozilla
–with-mozilla-sdk-path=/usr/win32-branch/gecko-sdk
–enable-mostly-builtin
&& make

例如把这个文件保存为 ‘mybuild’,等bootstrp运行结束之后,我们只需要运行一下 mybuild就会开始配置和编译了。这通常需要挺长的时间,如果运气好,在漫长的等待之后make运行成功,vlc就编译好了。直接双击主目录里边的vlc.exe应该就可以运行了。
为了方便可以把它打包,最简单的是 ‘make package-win32-base’,它将创建一个子目录来存放所有运行所需的东西,这个目录就是一个绿色版的VLC啦。
当然如果你运气没那么棒,可能会碰到各种各样的错误,例如在boottrap或者configure中出错,通常是因为没安装某个库或者库的版本不合适;也可能碰到编译的错误,尝试去google一下。

本文参考 http://wiki.videolan.org/Win32CompileCygwinNew

3.2 Linux平台编译

先下载源代码,把源代码解压之后也是先运行一下bootstrap,看看缺什么工具没有,例如gcc、make、libtool、automake、autoconfig等是否有合适的版本。如果不合适的话就用你喜欢的方式去升级或者安装。

下面最麻烦的一步来了。VLC在Linux上没有给出和Windows上类似的第三方库的预编译包,你必须去自己获得并编译这些库。这些库的数量取决于你的配置选项。VLC给出了一个自动化的解决方案,关注一下主目录extrascontrib,里边有一些工具来帮助你自动下载、patch和编译所有可能用到的第三方库。先运行一下那个目录下的bootstrap,如果缺少*.mak的话可以到VLC的代码库中找一下,是一个系统相关的文件,然后简单的一句make就可以了。如果你对这些库比较熟悉的话最好先手动筛选一下,有一些可能不是你所需要的,而下载他们可能需要很长的时间。
在漫长的等待之后,如果一切顺利(我几乎不相信会这样),这一步就算完成了。可能遇到的问题有:下载实在太慢,可以用其他下载工具把库的代码包下下来放到extrascontribsrc里边;如果下载一半断掉,可以把那个不完整的文件删掉重新再运行make。
这一步做完之后和windows上的编译就几乎一样了。写一个配置脚本然后运行它。例如一个配置脚本:
./configure
–enable-release
–disable-skins2
–disable-wxwidgets
–enable-mozilla
–with-mozilla-sdk-path=./gecko-sdk
–disable-sout
–disable-httpd
–enable-live555
–disable-dvdnav
–disable-libcdio
–disable-libcddb
–disable-cdda
–disable-vcd
–disable-dvdread
–disable-smb
–disable-cmml
–disable-alsa
–disable-opengl
–disable-png
–disable-screen
–disable-mkv
–disable-mod
–disable-mpc
–disable-libtar
–disable-speex
–disable-visual
–disable-daap
–disable-bonjour
–disable-gnutls
–enable-faad
–enable-mostly-builtin

参考:http://wiki.videolan.org/UnixCompile


END!

原文地址:https://www.cnblogs.com/SoaringLee/p/10532431.html