在14.04,官方存储库中是否缺少FFmpeg?

我试图在trusty / Ubuntu 14.04中安装ffmpeg并得到以下消息:

$sudo apt-get install ffmpeg Reading package lists... Done Building dependency tree Reading state information... Done Package ffmpeg is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package 'ffmpeg' has no installation candidate 

为什么不提供包裹?

最新消息

  • WEB UPD8: FFmpeg使用Ubuntu 15.04 Vivid Vervet 返回官方Ubuntu存储库

FFmpeg和libav

来自Ubuntu存储库的libav

在最近的版本中, Ubuntu开始发布 libav fork而不是FFmpeg 。 如果您安装了ffmpeg软件包 ,那么您实际上安装了libav-tools软件包和一个程序,告诉您将来使用avconv而不是ffmpeg ,给人的印象是不推荐使用ffmpeg,而不是。

过渡性的ffmpeg软件包似乎已从trusty / Ubuntu 14.04中删除(比较源 文件包的俏皮和可靠的软件包文件列表)。

所以一个选择是安装libav-tools包并使用avconv (注意,这不是“主线”FFmpeg而是一个突出的分支)。

来自Launchpad上的PPA的FFmpeg

另一种选择是使用提供FFmpeg的PPA。 有关可用的PPA和包的详细信息,请查看FFmpeg下载页面。 如果它们仍然是最新的,您应该每隔一段时间检查一次PPA。

相关问题:

  • PPA是否可以安全地添加到我的系统中,需要注意哪些“危险信号”?

从源代码安装

另一种选择是安装FFmpeg依赖包,然后手动编译并从源代码安装它。

使用静态构建

虽然从打包角度来看可能看起来有点尴尬,但您也可以使用来自可靠来源的任何静态构建。 在我的情况下,我将FFmpeg Windows 32位和64位二进制文​​件与x264-10-Bit二进制文件保存在一个文件夹中,以便在需要时在Wine或Windows中运行它们。


在研究这个主题时,我可以找到以下内容。 我没有密切关注这两个项目的发展,我不打算责怪任何人。 作为读者你不应该这样做。

叉是怎么发生的?

维基百科表示,分叉项目以及最初发布的版本已于2011年3月13日公布,但还有更多内容正在进行中。

挖掘Git提交

  • 20111月18日 – 提交f4f5cab94e0881cd30965b28f3d78d9c63d6918e

    FFmpeg项目负责人Michael Niedermayer将从MAINTAINERS文件中删除。

  • 20117月27日 – 提交6291d7e41605c0b1e9debfae8a2b1d4cf7b0e0b3

    avconv介绍:

    以新名称制作ffmpeg的副本 – avconv。

    它将通过一些不兼容的变化进一步发展。

    ffmpeg.c将保留一段时间,因此使用它的任何脚本都不会被破坏。

  • 20117月27日 – 提交791a86c37a03b94207bc2d0ad4cbe7f39d7e495a

    ffmpeg.c源代码的分叉版本中添加了一个警告,这可能会误导那些没有注意到fork并且他们不再使用FFmpeg的用户。

  • 20121月12日 – 提交0fec2cb15cc6ff1fcc724c774ec36abadcb7b6ad

    ffmpeg.c已从源代码中删除。

libav.org上的官方公告

以下post来自新闻栏目(最后一篇):

2011年8月9日

更新于2011年9月12日。

为了与我们的新名称保持一致,我们将ffplay重命名为avplay ,将ffserver重命名为avserver ,将ffprobe重 命名avprobe 。 他们的行为是一样的,只是名字被改变了。

使用ffmpeg (命令行工具),我们决定利用这个机会修复一些长期存在的可用性问题,这涉及破坏兼容性。 因此,我们添加了一个名为avconv的新工具,该工具基于ffmpeg ,但对于某些选项具有不同的(希望更强大且更易于使用)语法。 ffmpeg将保持其当前状态一段时间,因此没有脚本或使用它的前端会破坏。 但是它不会进一步发展。

avconvffmpeg之间的区别是:

[…]

请注意, avconv接口尚未被认为是稳定的。 在接下来的几周内可能会出现更多不兼容的变化。 我们将在此时宣布avconv稳定。

而在2011年早些时候:

2011年3月18日

我们刚刚从我们的0.6版本分支推出了另一个版本: Libav 0.6.2 。 这是针对两个安全问题的另一个仅维护版本。

从现在开始,我们将使用我们的新项目名称libav 。 但不要担心,与前面的版本0.6.1相比,唯一的function变化是VC1和APE解码器的两个安全修复程序。 这意味着libav为现有的FFmpeg安装提供了无痛替代。

此外,我们很自豪地将此源版本与win32平台的可执行文件和库一起提供。 这些二进制文件包括使用捆绑的x264库的H.264编码。 请享用!

鼓励分销商和系统集成商更新并与我们的发布分支机构共享其补丁。

2011年3月17日

我们刚刚推出了0.5版本分支的另一个版本: FFmpeg 0.5.4 。 这是另一个仅维护版本,可解决许多安全问题。

鼓励分销商和系统集成商更新并与我们的发布分支机构共享其补丁。

2011年3月13日

作为一组FFmpeg开发人员,我们决定继续以Libav的名义开发FFmpeg。 所有现有基础架构都将转移到libav.org域。

  • 网站: http : //www.libav.org/
  • Git:git://git.libav.org/libav.git(参见http://libav.org/download.html )
  • FATE: http : //fate.libav.org/
  • 综述: https : //roundup.libav.org/
  • 拼布: http : //patches.libav.org/
  • 邮件列表: http ://lists.libav.org/(开发人员列表:libav-devel@libav.org)

您可以使用以下命令更新您的git存储库:

 git remote set-url origin 'git://git.libav.org/libav' 

目前我们仍可通过FFmpeg的邮件列表和IRC频道访问,但我们将迁移到libav.org对应方。 对于过渡期,网站和来源可能仍包含对FFmpeg的引用。 随着时间的推移,这些将消失,除非在历史上相关。

2011年2月24日

FFmpeg开发已经转移到Git,SVN存储库不再更新。 SVN存储库可能在不久的将来被删除,因此建议您使用Git存储库 。

提交给SVN的最新修订版是2011年1月19日的r26402,并用独立副本替换了svn:external libswscale。

请注意,FFmpeg开发实际上已经转移到Git存储库,并且有两个Git存储库。 查看相应的项目下载页面。

ffmpeg在以前版本中由libav项目的avconv程序替换。

要安装avconv您需要安装libav-tools包:

 sudo apt-get install libav-tools 

avconvffmpeg非常相似,但它们在语法上也有一些差异。

编辑:似乎Ubuntu 16.04LTS在他们的存储库中再次ffmpeg ,所以libav-tools是一个虚拟包,只创建一个别名avconv -> ffmpeg (和其他)

ffmpeg删除了Ubuntu的repo,而不是libav。 你应该添加ppa:

 sudo add-apt-repository ppa:mc3man/trusty-media sudo apt-get update sudo apt-get install ffmpeg gstreamer0.10-ffmpeg 

看你的输出

您也可以使用此PPA: ppa:jon-severinsson / ffmpeg

编辑:此ppa已从Launchpad中删除,我不知道为什么。 而不是它,你可以使用samrog131 PPA(用于Trusty,Utopic和Vivid)

 sudo add-apt-repository ppa:samrog131/ppa sudo apt-get update sudo apt-get install ffmpeg-set-alternatives 

PPA还包含您可能不需要的其他包。 安装后删除ppa。

 sudo add-apt-repository --remove ppa:samrog131/ppa sudo apt-get update 

从Debian存储库开始,FFMPEG包已经删除了一段时间。 关于将软件包再次包含在存储库中仍然存在争论 。 Ubuntu作为Debian衍生物,取决于上游的决定。 很久以前,这个包只是空的,依赖于libav。 2012年5月12日,当包裹被删除并从档案中删除时,情况发生了变化:

 libav (6:0.8.99-1537-gacb2c79-1) experimental; urgency=low * New upstream snapshot - Drop patches applied upstream - Longer build libpostproc, dropped upstream - follow soname bump of libavcodec and libavformat 53->54 - New library: libswresample * no longer build and use dirac, removed upstream in favor of libschroedinger * remove deprecated ffmpeg package * bump shlibs version -- Reinhard Tartler  Sat, 12 May 2012 22:02:03 +0200 

我试图运行时遇到了同样的错误

 sudo apt-get install ffmpeg 

所以我结合了一些其他答案,以及本网站的内容,以获得以下对我有用的配方:

 sudo apt-get install ppa-purge sudo ppa-purge ppa:mc3man/trusty-media # ignore warning if not found sudo add-apt-repository ppa:mc3man/trusty-media sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install ffmpeg 

现在我可以看到已经安装了ffmpeg:

 sudo find / -type f -name "ffmpeg" 

返回/opt/ffmpeg/bin/ffmpeg

从bash提示符开始,命令ffmpeg现在可以在任何文件夹中运行。

如果要在Ubuntu 14.04中安装ffmpeg 2.2.1(源代码),可以尝试使用以下选项:

对于64位操作系统:

依赖列表:

 yasm frei0r-plugins-dev gnutls-bin libgnutls-dev libass-dev libgsm1-dev libmp3lame-dev libopencv-dev libopenjpeg-dev libopus-dev libpulse-dev libschroedinger-dev libsoxr-dev libspeex-dev libtheora-dev libv4l-dev libvorbis-dev libvpx-dev libx264-dev libxvidcore-dev libopenal-dev libcdio-paranoia-dev 

编译选项:

 ./configure --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib/x86_64-linux-gnu/ --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --enable-bzlib --disable-crystalhd --enable-frei0r --enable-gnutls --enable-libass --enable-libcdio --enable-libdc1394 --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopencv --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib/x86_64-linux-gnu/ --enable-runtime-cpudetect 

对于32位操作系统:

依赖列表:

 yasm frei0r-plugins-dev gnutls-bin libgnutls-dev libass-dev libgsm1-dev libmp3lame-dev libopencv-dev libopenjpeg-dev libopus-dev libpulse-dev libschroedinger-dev libsoxr-dev libspeex-dev libtheora-dev libv4l-dev libvorbis-dev libvpx-dev libx264-dev libxvidcore-dev libopenal-dev libcdio-paranoia-dev libopencore-amrwb-dev libopencore-amrnb-dev 

编译选项:

 ./configure --prefix=/usr --libdir=/usr/lib --shlibdir=/usr/lib --mandir=/usr/share/man --enable-runtime-cpudetect --enable-gpl --enable-version3 --enable-postproc --enable-avfilter --enable-pthreads --enable-x11grab --enable-vdpau --disable-avisynth --enable-frei0r --enable-libdc1394 --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -grecord-gcc-switches -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables' --disable-stripping 

有关更多信息,请参阅我的YouTubevideo 。

如果你想要最新版本的github,它可以满足youtube-dl生成的错误

 ERROR: ffprobe or avprobe not found. Please install one. 

然后发出这些cmds:

 sudo apt-get build-dep ffmpeg git clone https://github.com/FFmpeg/FFmpeg.git cd FFmpeg ./configure --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --enable-shared --disable-stripping --enable-avresample --enable-avisynth --enable-frei0r --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-openal --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libxvid --enable-libzvbi --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-libssh --enable-libsoxr --enable-libx264 --enable-libopencv --enable-libx265 make -j8 sudo make install 

请享用,

首先安装avconv

 $ sudo apt-get install libav-tools 

然后创建一个名为ffmpeg avconv的软链接:

 $ sudo ln -s /usr/bin/avconv /usr/bin/ffmpeg 

现在你可以正常使用ffmpeg

我花了两周时间安装最新版本的ffmpeg 2.8.11。 此版本用于Ubuntu 16.04。 我建议你应该安装这个版本。 我在Ubuntu 12.04和Ubuntu 14.04上进行了测试,效果很好。 你可以像上面的说明一样安装libav-tools,但是你会遇到兼容性方面的问题。 因为libav-tools和ffmpeg现在是由两个不同的小组开发的。 按照我的指示。 如果您有任何问题可以通过电子邮件发送给我:hohaidang.khtn@gmail.com

 $ sudo apt-get update $ sudo apt-get -y install build-essential checkinstall git libfaac-dev libgpac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev librtmp-dev libtheora-dev libvorbis-dev pkg-config texi2html yasm zlib1g-dev libavcodec-extra-53 $ sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev $ sudo apt-get install libdc1394-22 libdc1394-22-dev libgsm1 libgsm1-dev libopenjpeg-dev libschroedinger-1.0-0 libschroedinger-dev libschroedinger-doc libspeex-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libvorbis-dev libx11-dev libxfixes-dev libxvidcore-dev libx264-dev $ wget https://www.ffmpeg.org/releases/ffmpeg-2.8.11.tar.xz $ tar xf ffmpeg-2.8.11.tar.xz $ cd ffmpeg-2.8.11/ ./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-x11grab --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libdc1394 --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --disable-yasm // disable yasm if you are using Ubuntu 12.04, if not --enable-yasm $ make $ sudo make install 

检查终端中的ffmpeg,ffserver,ffplay,ffprobe。 祝好运