ubuntu14.04属于长期支持的linux版本,现在用的人很多,但是个人感觉这个版本的功能还不算完善,mp4/avi竟然没有默认支持,还要装插件,而各个人的linux配置又千差万别,导致有些人能正常播放,有些人却不能正常播放。
1.在播放avi/mp4的时候播放器会弹出一个无法播放,需要安装”gstreamer1.0-libav”插件的窗口,点击安装后却提示出错:
$ sudo apt-get install gstreamer1.0-libav
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
gstreamer1.0-libav : Depends: libavcodec54 (>= 6:9.1-1) but it is not going to be installed or
libavcodec-extra-54 (>= 6:9.13) but it is not going to be installed
Depends: libavformat54 (>= 6:9.1-1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
提示信息里面有一大堆,最后一种无法修复的错误:
下列软件包有未满足的依赖关系:
: 依赖: libavcodec54 (>= 6:9.1-1) 但是它将不会被安装 或
libavcodec-extra-54 (>= 6:9.11) 但是它将不会被安装
依赖: libavformat54 (>= 6:9.1-1) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
即使是单独安装:”libavcodec54”或者”libavcodec-extra-54 “也出现同样的提示:无法修正错误。
我们知道linux是分为32位系统(i386)和64位系统(amd64),而linux的软件有些是支持32位,有些是支持64位的。但是假如你要安装32位的软件,而64位系统默认安装64位的软件,这时候就会提示安装不了这个软件。linux下面的依赖关系也算很让人纠结的,假如你安装了32位的软件,然后你后来又要安装64位的软件,而这个64位的软件要依赖之前的软件,那么问题就来了,怎么让这两种不同的软件兼容在一起呢?卸载原来32位的软件,再重新安装64位的软件就能解决问题。
输入下面命令就能修复这个错误了:
sudo apt-get install gstreamer1.0-libav:i386 libavcodec54:i386 libavformat54:i386 libopus0:i386
安装信息如下:
maya@maya-g450:~$ sudo apt-get install gstreamer1.0-libav:i386 libavcodec54:i386 libavformat54:i386
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
gstreamer1.0-libav:i386 已经是最新的版本。
libavformat54:i386 已经是最新的版本。
libavformat54:i386 被设置为手动安装。
下列软件包是自动安装的并且现在不需要了:
account-plugin-windows-live diffstat kde-l10n-engb kde-l10n-zhcn
liba52-0.7.4 libaacs0 libapt-pkg-perl libarchive-zip-perl libass4
libautodie-perl libbasicusageenvironment0 libbluray1 libcddb2
libclass-accessor-perl libclone-perl libcrystalhd3 libdc1394-22 libdca0
libdirac-encoder0 libdirectfb-1.2-9 libdvbpsi8 libdvdnav4 libdvdread4
libebml4 libemail-valid-perl libenca0 libfaad2 libgnutls28 libgroupsock1
libhogweed2 libio-pty-perl libio-string-perl libipc-run-perl
libipc-system-simple-perl libiso9660-8 libkate1 liblist-moreutils-perl
liblivemedia23 libmad0 libmatroska6 libmodplug1 libmp3lame0 libmpcdec6
libmpeg2-4 libnet-dns-perl libnet-domain-tld-perl libnet-ip-perl libntdb1
libopenjpeg2 libparse-debianchangelog-perl libperlio-gzip-perl libpostproc52
libproxy-tools libresid-builder0c2a libschroedinger-1.0-0 libsdl-image1.2
libsidplay2 libssh2-1 libsub-identify-perl libsub-name-perl libswscale2
libtar0 libtext-levenshtein-perl libts-0.0-0 libtwolame0 libupnp6
libupstart1 libusageenvironment1 libva-x11-1 libva1 libvcdinfo0 libvlc5
libvlccore7 libx264-142 libxcb-composite0 libxcb-xv0 libxvidcore4
libzvbi-common libzvbi0 linux-image-extra-3.16.0-30-generic patchutils
python-ntdb t1utils tsconf vlc-data
Use 'apt-get autoremove' to remove them.
下列软件包将被【卸载】:
libavcodec-extra-54:i386
下列【新】软件包将被安装:
libavcodec54:i386
升级了 0 个软件包,新安装了 1 个软件包,要卸载 1 个软件包,有 0 个软件包未被升级。
需要下载 2,497 kB 的软件包。
解压缩后将会空出 17.4 kB 的空间。
您希望继续执行吗? [Y/n]
获取:1 http://mirrors.163.com/ubuntu/ trusty-updates/universe libavcodec54 i386 6:9.18-0ubuntu0.14.04.1 [2,497 kB]
下载 2,497 kB,耗时 1分 3秒 (39.1 kB/s)
dpkg: libavcodec-extra-54:i386:有依赖问题,但是如您所愿,将继续卸载:
libavformat54:i386 依赖于 libavcodec54 (>= 6:9.1-1) | libavcodec-extra-54 (>= 6:9.18).
gstreamer1.0-libav:i386 依赖于 libavcodec54 (>= 6:9.1-1) | libavcodec-extra-54 (>= 6:9.13).
(正在读取数据库 ... 系统当前共安装有 247693 个文件和目录。)
正在卸载 libavcodec-extra-54:i386 (6:9.18-0ubuntu0.14.04.1) ...
正在处理用于 libc-bin (2.19-0ubuntu6.9) 的触发器 ...
正在选中未选择的软件包 libavcodec54:i386。
(正在读取数据库 ... 系统当前共安装有 247685 个文件和目录。)
正准备解包 .../libavcodec54_6%3a9.18-0ubuntu0.14.04.1_i386.deb ...
正在解包 libavcodec54:i386 (6:9.18-0ubuntu0.14.04.1) ...
正在设置 libavcodec54:i386 (6:9.18-0ubuntu0.14.04.1) ...
正在处理用于 libc-bin (2.19-0ubuntu6.9) 的触发器 ...
maya@maya-g450:~$ sudo apt-get install libopus0
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包是自动安装的并且现在不需要了:
account-plugin-windows-live diffstat kde-l10n-engb kde-l10n-zhcn
liba52-0.7.4 libaacs0 libapt-pkg-perl libarchive-zip-perl libass4
libautodie-perl libavutil52:i386 libbasicusageenvironment0 libbluray1
libcddb2 libclass-accessor-perl libclone-perl libcrystalhd3 libdc1394-22
libdca0 libdirac-encoder0 libdirectfb-1.2-9 libdvbpsi8 libdvdnav4
libdvdread4 libebml4 libemail-valid-perl libenca0 libfaad2 libgnutls28
libgroupsock1 libgsm1:i386 libhogweed2 libio-pty-perl libio-string-perl
libipc-run-perl libipc-system-simple-perl libiso9660-8 libkate1
liblist-moreutils-perl liblivemedia23 libmad0 libmatroska6 libmodplug1
libmp3lame0 libmp3lame0:i386 libmpcdec6 libmpeg2-4 libnet-dns-perl
libnet-domain-tld-perl libnet-ip-perl libntdb1 libopencore-amrnb0:i386
libopencore-amrwb0:i386 libopenjpeg2 libopenjpeg2:i386
libparse-debianchangelog-perl libperlio-gzip-perl libpostproc52
libproxy-tools libresid-builder0c2a libschroedinger-1.0-0
libschroedinger-1.0-0:i386 libsdl-image1.2 libsidplay2 libssh2-1
libsub-identify-perl libsub-name-perl libswscale2 libtar0
libtext-levenshtein-perl libts-0.0-0 libtwolame0 libupnp6 libupstart1
libusageenvironment1 libva-x11-1 libva1 libva1:i386 libvcdinfo0 libvlc5
libvlccore7 libvo-aacenc0:i386 libvo-amrwbenc0:i386 libx264-142
libx264-142:i386 libxcb-composite0 libxcb-xv0 libxvidcore4 libxvidcore4:i386
libzvbi-common libzvbi0 linux-image-extra-3.16.0-30-generic patchutils
python-ntdb t1utils tsconf vlc-data
Use 'apt-get autoremove' to remove them.
建议安装的软件包:
opus-tools
下列软件包将被【卸载】:
gstreamer1.0-libav:i386 libavcodec54:i386 libavformat54:i386 libopus0:i386
下列【新】软件包将被安装:
libopus0
升级了 0 个软件包,新安装了 1 个软件包,要卸载 4 个软件包,有 0 个软件包未被升级。
需要下载 153 kB 的软件包。
解压缩后将会空出 16.0 MB 的空间。
您希望继续执行吗? [Y/n]
获取:1 http://mirrors.163.com/ubuntu/ trusty/main libopus0 amd64 1.1-0ubuntu1 [153 kB]
下载 153 kB,耗时 4秒 (37.3 kB/s)
(正在读取数据库 ... 系统当前共安装有 247693 个文件和目录。)
正在卸载 gstreamer1.0-libav:i386 (1.2.4-1~ubuntu1) ...
正在卸载 libavformat54:i386 (6:9.18-0ubuntu0.14.04.1) ...
正在卸载 libavcodec54:i386 (6:9.18-0ubuntu0.14.04.1) ...
正在卸载 libopus0 (1.1-0ubuntu1) ...
正在处理用于 libc-bin (2.19-0ubuntu6.9) 的触发器 ...
正在选中未选择的软件包 libopus0。
(正在读取数据库 ... 系统当前共安装有 247662 个文件和目录。)
正准备解包 .../libopus0_1.1-0ubuntu1_amd64.deb ...
正在解包 libopus0 (1.1-0ubuntu1) ...
正在设置 libopus0 (1.1-0ubuntu1) ...
正在处理用于 libc-bin (2.19-0ubuntu6.9) 的触发器 ...
这时候再开启视频,就会提示安装”gstreamer1.0-libav”插件,然后你只要一直确认就行了。最后,avi和mp4的视频都能播放了。
如果还是提示出错的话,则需要安装 libopus0:
sudo apt-get install libopus0
在播放wmv和asf视频的时候又提示出错,解决方法如下:
sudo apt-add-repository ppa:mc3man/trusty-media
sudo apt-get update
sudo apt-get install gstreamer0.10-ffmpeg
参考资料:
1.Ubuntu 14.04, problem when install gstreamer1.0-libav, unmet dependencies
2.安装不了解码器。