linux版本VLC播放器安装

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 07:57   31   0
想边上班边听歌,可惜办公电脑有点差,所以装的是fedora 10.又用的是代理上网,网速严重受限,同事传了些mp3,居然听不了,没mp3解码器,晕倒。。想到自家电脑装的vlc播放器,不错,就装上耍起,不晓得哪里没有安装好,居然有很多问题,碰巧在网上遇到一哥们,和他问题几乎一致,他刚好写了详细介绍,就转他的吧,备忘一下,感谢这哥们的分享精神:原文网址如下:http://hi.baidu.com/samtao/blog/item/8152ffc8344b3ff153664f4c.html
vlc源码:
ftp://ftp.videolan.org/pub/videolan/vlc/2.1.1/vlc-2.1.1.tar.xz


Step by step安装vlc-player.

1:首先从vlc官方网站下载vlc的最新版。

我们下载source code版本。http://www.videolan.org/vlc/download-sources.html

本例中所有程序均放到/root/soft目录

2:为了让root用户可以执行VLC,我们需要加上 --enable-run-as-root

(ps:可以执行如下:[root@tsong vlc-1.0.6]# ./configure --help|grep root )查看该命令怎么写

编译命令:./configure --enable-run-as-root --prefix=/root/soft/vlc

提示缺少libmad:

configure: error: Could not find libmad on your system: you may get it from http://www.underbit.com/products/mad/. Alternatively you can use --disable-mad to disable the mad plugin.

3:编译libmad.

按照提示,下载:http://www.underbit.com/products/mad,编译

./configure --prifix=/root/soft/libmad

make 提示错误

cc1: error: unrecognized command line option "-fforce-mem"
make[2]: *** [version.lo] Error 1
make[2]: Leaving directory `/home/izhier/download/libmad-0.15.1b'

google之,说是gcc版本太高,修改makefile,删除-fforce-mem

即可make,然后make install

(此时libmad安装在/root/soft/libmad文件夹内)

4:继续编译vlc,这时候用如下命令:

./configure --enable-run-as-root --prefix=/root/soft/vlc --with-mad=/root/soft/libmad/

继续,提示找不到libavcodec,

configure: error: Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.

5:编译libavcodec.

下载,编译:http://www.ffmpeg.org/download.html

或者直接用svn下载最新版:svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg

./configure --prifix=/root/soft/ffmpeg

make

编译过程极其漫长

完成之后输入make install即OK

作为一个过来者,我建议用下面这个命令编译:

./configure --prefix=/root/soft/ffmpeg --enable-swscale --enable-postproc --enable-gpl --enable-memalign-hack --enable-ffserver --enable-network --enable-protocols --enable-muxers

否则,你将不得不执行步骤7和步骤8。

6:继续编译,不用置疑,一定还是会提示libavcodec找不到,why?因为你放的目录程序找不到。这时候就要用到pkg-config了

export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/root/soft/ffmpeg/lib/pkgconfig"

export完成之后,我们可以测试一下:

[root@tsong vlc-1.0.6]# pkg-config --modversion libavcodec

52.20.1

如果可以打印出版本信息,那么OK,就可以继续编译了

7:继续编译。

编译命令还是

./configure --enable-run-as-root --prefix=/root/soft/vlc --with-mad=/root/soft/libmad/

继续提示缺少swscale:

checking for SWSCALE... no

configure: error: Could not find libswscale. Use --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.

google了一下,发现swscale是ffmpeg到一个选项,默认在编译到时候没有启用。

[root@tsong ffmpeg-0.5.1]# ./configure --help|grep swscale

--enable-swscale enable GPLed software scaler support [no]
无奈,只好继续返回步骤5,用如下命令:

[root@tsong ffmpeg-0.5.1]# ./configure --prefix=/root/soft/ffmpeg --enable-swscale

然后再重复再编译安装ffmpeg

make

make install

8:完成步骤7中到swscale后,继续编译。

checking for ffmpeg/swscale.h... no

checking for POSTPROC... no

configure: error: Could not find libpostproc. Use --disable-postproc to ignore this error.

看报错在ffmpeg后面,该不会libpostproc也是ffmpeg到一个配置?

[root@tsong ffmpeg-0.5.1]# ./configure --help|grep postproc

--enable-postproc enable GPLed postprocessing support [no]

[root@tsong ffmpeg-0.5.1]# ./configure --prefix=/root/soft/ffmpeg --enable-swscale --enable-postproc

postproc is gpl and --enable-gpl is not specified.

If you think configure made a mistake, make sure you are using the latest

version from SVN. If the latest version fails, report the problem to the

ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.

Include the log file "config.err" produced by configure as this will help

solving the problem.

[root@tsong ffmpeg-0.5.1]# ./configure --prefix=/root/soft/ffmpeg --enable-swscale --enable-postproc --enable-gpl

无语,继续用./configure --prefix=/root/soft/ffmpeg --enable-swscale --enable-postproc --enable-gpl 命令编译ffmpeg

这可是第三次编译ffmpeg了!

9:继续编译:提示缺少a52

checking for a52dec/a52.h... no

configure: error: Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.

按照提示,从地址 http://liba52.sf.net下载, 或http://download.csdn.net/detail/zdf511391565/6847579
./configure --prefix=/root/soft/a52dec

make

make install

10:编译好a52dec后,我们继续编译vlc

./configure --enable-run-as-root --prefix=/root/soft/vlc --with-mad=/root/soft/libmad/ --with-a52=/root/soft/a52dec/

报错:

No package 'xcb' found

解决:

yum install xcb*

相关的都给他装上 在运行./configure 没有报错

11.再次执行vlc配置:./configure --enable-debug --enable-dvbpsi --disable-nls --disable-mozilla
报告错误:
checking for XCB... no
configure: error: Package requirements (xcb) were not met:
No package 'xcb' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables XCB_CFLAGS
and XCB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
12.需要安装libxcb,而libxcb还需要xcb-proto和libpthread-stubs,并由Python编译,因此我进行了如下操作:
1)下载http://www.python.org/ftp/python/3.1.3/Python-3.1.3.tgz,并执行:
tar -zxvf Python-3.1.3.tgz
cd Python-3.1.3
./configure
make
make install
2)下载http://xcb.freedesktop.org/dist/libpthread-stubs-0.3.tar.gz,并执行:
./configure
make
make install
3)下载http://xcb.freedesktop.org/dist/xcb-proto-1.6.tar.gz,并执行:
./configure
make
make install
4)最后下载http://xcb.freedesktop.org/dist/libxcb-1.7.tar.gz,并执行:
./configure
make
make install
期间,我还下载了libxcb-1.6.tar.gz,libxcb-1.5.tar.gz,libxcb-1.4.tar.gz,结果,不是在configure时报告错误“找不到Python”:
checking for a Python interpreter with version >= 2.5... none
configure: error: no suitable Python interpreter found
或报告错误“Python需要>=2.5,当前的Python版本 too old",
就是在make时报告错误:
Failed to load the xcbgen Python package!
Make sure that xcb/proto installed it on your Python path.
经查,有资料说Python3.x与Python2.x有很大的差异,没办法,只得全部make distclean,再将以上操作全部重新执行一遍,重要的是将Python版本替换为2.7:http://www.python.org/ftp/python/2.7/Python-2.7.tgz
终于,将libxcb install完毕。

再次执行vlc配置:./configure --enable-debug --enable-dvbpsi --disable-nls --disable-mozilla
报告错误:
checking for XLIB_XCB... no
configure: error: Package requirements (x11-xcb) were not met:
No package 'x11-xcb' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables XLIB_XCB_CFLAGS
and XLIB_XCB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
这个没有找到package 'x11-xcb'的错误真把人折腾死了,起初以为是缺少XWindows的开发环境,安装完毕后错误依旧…… 查了两天,看了无数的国内外论坛,得到的概念是:libX11应该在xcb绑定的基础上进行编译,也就是说应该先装libxcb,再make/install libX11,而系统默认安装的libX11版本为1.0.3,因此前去ftp://ftp.freedesktop.org/pub/xorg/X11R7.4/src/lib/ 下载 xtrans-1.2.1.tar.gz 和libX11-1.1.5.tar.gz,去ftp://ftp.freedesktop.org/pub/xorg/X11R7.4/src/proto/ 下载xextproto-7.0.3.tar.gz,然后先make/install xextproto-7.0.3 和 xtrans,再make/install libX11,结果却报告错误:
checking for XLIB_XCB... no
configure: error: Package requirements (x11-xcb) were not met:
No package 'x11-xcb' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables XLIB_XCB_CFLAGS
and XLIB_XCB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
更换版本:libX11-1.1.3.tar.bz2 还是报告同样的错误。现在更晕菜了,几乎想放弃了。硬着头皮继续查,从大家的经历和分析感觉应该是系统的BUG,可参见:
http://bugs.gentoo.org/show_bug.cgi?id=158476 或
http://www.gentoo.org/proj/en/desktop/x/x11/libxcb-1.4-upgrade-guide.xml。
于是换高版本一搏,下载:http://www.x.org/releases/X11R7.6/src/lib/libX11-1.4.0.tar.gz重新编译。通过!

配置其他依赖包

yum install dbus-devel libcddb-devel libva* libxcb-devel ghc-OpenGL-devel -y
yum install alsa-lib-devel -y  # 相关错误 configure: error: No package 'alsa' found. alsa-lib 1.0.16 or later required
yum install libgcrypt-devel -y  # 相关错误 configure: error: libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt.

12:

继续报错

checking for FRIBIDI... configure: error: Package requirements (fribidi) were not met:

No package 'fribidi' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you

installed software in a non-standard prefix.

Alternatively, you may set the environment variables FRIBIDI_CFLAGS

and FRIBIDI_LIBS to avoid the need to call pkg-config.

See the pkg-config man page for more details.

从网址:http://fribidi.org/下载fribidi,然后编译安装。

[root@tsong fribidi-0.10.9]# ./configure --prefix=/root/soft/fribidi

make

make install

13:如步骤6,还是需要修改PKG_CONFIG_PATH,使之包含刚刚安装的fribidi

export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/root/soft/ffmpeg/lib/pkgconfig:/root/soft/fribidi/lib/pkgconfig"

继续编译

14:继续报错

----------My god,我快失去耐心了。好在马上就结束了

checking for QT4... no

configure: WARNING: Qt 4 library not found

configure: error: The skins2 module depends on a the Qt4 development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the Qt4 development package or alternatively you can also configure with: --disable-qt4 --disable-skins2.

下载QT4,http://qt.nokia.com/downloads-cn 这又是一个大家伙,将近400MB呢,好在我之前已经下载编译好了,现在要做的就是指定pkg-config就可以了

15:还是让pkg-config可以找到qt4就可以了(/opt/qtsdk/qt/lib/pkgconfig)

export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/root/soft/ffmpeg/lib/pkgconfig:/root/soft/fribidi/lib/pkgconfig:/opt/qtsdk/qt/lib/pkgconfig"

16:congratulations!

终于要成功了!

config.status: creating vlc-config

Enabled modules: a52tofloat32 a52tospdif access_alsa access_mmap access_oss adjust alphamask alsa aout_file aout_sdl atmo audio_format audioscrobbler avcodec avformat bandlimited_resampler blend blendbench bluescreen canvas cdda chain clone cmml colorthres converter_float crop croppadd dbus deinterlace dolby_surround_decoder dtstospdif dynamicoverlay equalizer erase extract fake fb float32_mixer folder freetype gaussianblur gestures glx gnutls gradient grain hal headphone_channel_mixer hotkeys http i420_rgb_mmx i420_rgb_sse2 i420_ymga i420_ymga_mmx i420_yuy2 i420_yuy2_mmx i420_yuy2_sse2 i422_i420 i422_yuy2 i422_yuy2_mmx i422_yuy2_sse2 inhibit invert linear_resampler logo magnify marq memcpy3dn memcpymmx memcpymmxext mosaic motion motionblur motiondetect mpgatofixed32 mux_ogg noise normvol notify ogg opengl opengl osd_parser osdmenu oss panoramix param_eq png podcast postproc probe_hal psychedelic puzzle qt4 rc remoteosd ripple rotate rss rv32 sap scale scaletempo scene screensaver sharpen shout showintf signals simple_channel_mixer skins2 spatializer spdif_mixer stream_out_raop swscale telepathy telnet telx transform unzip v4l2 vcd visual vmem vorbis vout_sdl wall wave x11 x11_screen xml xvideo yuv yuvp yuy2_i420 yuy2_i422 zip

libvlc configuration

--------------------

version : 1.0.6

system : linux

architecture : i686 mmx sse sse2

build flavour : devel

vlc aliases : cvlc rvlc svlc qvlc

plugins/bindings :

You can tune the compiler flags in vlc-config.

To build vlc and its plugins, type `./compile' or `make'.

17:很遗憾,编译的时候再次出现错误提示:

ERROR : src/ft2_font.cpp:30: 29: fribidi/fribidi.h: No such file or directory

src/ft2_font.cpp: In member function 'virtual GenericBitmap* FT2Font::drawString(const UString&, uint32_t, int) const':

ERROR : src/ft2_font.cpp: 157: 'FriBidiCharType' was not declared in this scope

google:http://svn.tribler.org/vlc/trunk/modules/gui/skins2/src/ft2_font.cpp

查找代码ft2_font.cpp,在目录/root/download/vlc-1.0.6/modules/gui/skins2/src 下,看到了

#include <fribidi/fribidi.h>

因为我们的fribidi是安装在/root/soft/fribidi目录,不是默认安装在/usr/include目录,那么建立符号链接!

[root@tsong include]# ln -s /root/soft/fribidi/include/fribidi/ fribidi

[root@tsong include]# pwd

/usr/include

18:继续

make

make install

19:done

20:编辑文件/usr/share/applications /vlc.desktop

[Desktop Entry]

Version=1.0

Name=Vlc Player

Comment=vlc player

GenericName=vlc

Exec=/root/soft/vlc/bin/vlc

Terminal=false

X-MultipleArgs=false

Type=Application

Icon=vlc48x48

Categories=AudioVideo;

MimeType=text/html;

StartupWMClass=Chromium

StartupNotify=true

X-Desktop-File-Install-Version=0.15
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP