FFmpeg在14.04的官方存储库中丢失了吗?


293

我尝试在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

为什么没有包装?


1
apt-cache search ffmpeg |的输出是什么?grep“ ffmpeg”如果您没有ffmpeg在返回结果列表中看到,则说明您的回购管理器出了点问题。就目前而言,我建议通过源代码进行安装。从这里
wyas 2014年

2
请注意,截至2018年,avconv不在ffmpeg中,而libav-tools不在Ubuntu存储库中!
猫头鹰

Answers:


258

最新消息


FFmpeg和libav

来自Ubuntu存储库的libav

Ubuntu 在最近的发行版中开始提供libav fork而不是FFmpeg。如果安装了ffmpeg软件包,则实际上安装了libav-tools软件包和一个告诉您在将来不要使用的程序,从而给人以ffmpeg弃用的印象,而实际上并没有。avconvffmpeg

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

因此,一种选择是安装libav-tools软件包并使用它avconv(注意,这不是“主线” FFmpeg,而是突出的fork)。

从启动板上的PPA提取FFmpeg

另一种选择是使用提供FFmpeg的PPA。请查看FFmpeg下载页面,以获取可用PPA和软件包的详细信息。如果每个PPA仍是最新的,则应不时检查一次。

相关问题:

从源安装

另一个选择是安装FFmpeg依赖包,然后从源代码手动进行编译+安装。

使用静态版本

尽管从包装的角度看可能有点尴尬,但您也可以使用来自受信任来源的任何静态构建。就我而言,我将FFmpeg Windows 32位和64位二进制文​​件以及x264-10-Bit二进制文件以及x264-10-Bit二进制文件保留在一个文件夹中,以便在需要时在Wine或Windows中运行它们。


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

叉子是如何发生的?

维基百科指出,分叉的项目以及最初的版本已于2011年3月13日宣布,但是还有更多的事情要做。

通过Git提交进行挖掘

在libav.org上的官方公告

以下帖子来自新闻版块(最旧的帖子排在最后):

2011年8月9日

于12.09.2011更新。

对于我们的新名称的一致性,我们已经改名ffplayavplayffserver的avserverffprobeavprobe。他们的行为是一样的,只是名字被改变了。

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

avconvffmpeg之间的区别是:

[...]

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

在2011年初:

2011年3月18日

我们刚刚从0.6发布分支中发布了另一个发布点: Libav 0.6.2。这是另一个仅维护的发行版,解决了两个安全问题。

从现在开始,我们将使用新项目名称libav。但请放心,与之前的0.6.1版本相比,唯一的功能更改是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域。

您可以使用以下命令更新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存储库。请参见相应的项目下载页面。


这种变化何时发生?
塞斯

@Seth您的意思是运输libav而不是FFmpeg或放弃过渡包装吗?我找到了一封邮件,该邮件指向技术委员会的团队报告,并在启动板上添加了指向源包的链接,可以在其中比较安全和可靠的包列表,但我不知道详细信息。
LiveWireBT 2014年

我指的是删除程序包,尽管如果可能的话我对这两个时间范围都感兴趣。
赛斯

3
我可能将如何将ffmpeg从ppa安装到最后。作为“如果您真的很喜欢潮流,并且已经阅读了所有这些内容,那么您可以这样做。” 而不是将其放在最前面。例如,如果可以避免使用PPA,则鼓励使用main / uni / multi中的内容。
RobotHumans 2014年

1
@hbdgaf我添加了askubuntu.com/q/35629作为提示。FFmpeg PPA已经排在最后,没有考虑新添加的历史记录部分。除了纯粹的政治(可能是仇恨),我想讨论不同的功能,例如w3fdifFFmpeg中的新去隔行过滤器(但这在这个问题上是不合时宜的)。我不明白为什么我会因为试图客观地解释所发生的事情而明显不赞成(我没有特别指责您)。我与这些项目之一没有任何关联,并希望尽可能地客观。
LiveWireBT 2014年

120

ffmpeg在以前的发行版中已由avconvlibav项目中的程序替换。

要安装,avconv您需要安装libav-tools软件包:

sudo apt-get install libav-tools

avconv与十分相似ffmpeg,但语法也有所不同。

编辑:似乎Ubuntu 16.04LTS再次ffmpeg在其存储库中,因此libav-tools是一个虚拟程序包,仅创建一个别名avconv -> ffmpeg(和其他别名)


答案很简单,但是所有在线说明都说明如何使用ffmpeg而不是avconv来完成任务,这就是使我进入此页面的原因。向Rutrus致歉:减一。-也许您能解释其中的差异,我们将能够进行处理。
亚伦·霍尔

2
@ aaron-hall我认为您的-1不公平。您期望出现问题。2014年提出的问题非常明确:是否在14.04中缺失?答案是肯定的,在某些以前的版本中,ffmpeg只是avconv的别名。要找什么都没关系。也许您在单击此页面之前没有阅读页面标题。但请放心,我将为不知道stackexchange如何工作的声誉为184的人提供免责声明。
Rutrus

我仍然有14.04,并且我想使用ffmpeg-avconv是直接替代品还是什么?有什么区别?
亚伦·霍尔

在本网站上的绝大多数代表都归功于此答案,我本可以根据最佳答案中的内容编写该答案。您应该通过写出一个体面的答案(至少总而言之是什么)来赢得您的代表。挥手是浪费时间。除非它确实只是一个别名,否则在语法上应该没有任何区别。如果这样做,您会颠倒我对答案的看法,但是就目前而言,它与自己矛盾!让我知道何时可以删除这些评论。
亚伦·霍尔

2
libav-tools是ffmpeg的fork。从2012年到2014年在Ubuntu仓库中ffmpeg被替换avconv。您可以问这个新问题作为答案,也可以自己找一个。从Ubuntu 15.04开始,您可以再次使用ffmpeg。摘要:libav与ffmpeg语法兼容,但反之则不然。
Rutrus

47

ffmpeg删除了Ubuntu的仓库,而不是libav。您应该添加ppa:

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

看你的输出


1
它必须是:`sudo add-apt-repository ppa:mc3man / trusty-media :)无法编辑此字符,没有更改足够的字符。
IndexOutOfBoundsException 2014年

1
这不是FFmpeg.org上作为当前官方PPA列出的PPA。(此外,维护PPA的项目成员可能会更改,这就是为什么我决定不添加有关如何添加特定PPA的说明的原因。)此外,如果您查看此PPA,它会更新许多软件包,而不仅仅是ffmpeg。
LiveWireBT 2014年

这不再起作用了。
MadeOfAir

确实有效。我刚刚添加了此PPA,现在正在安装FFMPEG。
穆罕默德·本·尤斯拉特

3
@LiveWireBT(及其他)PPA现在提供的在Ubuntu上链接的FFmpeg下载页面 ...
维尔夫

44

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

编辑:此ppa已从启动板中删除,我不知道为什么。代替它,您可以使用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

1
修复了apt-add-repository-> add-apt-repository。如果再贴切加-库为你不工作,试试这个:stackoverflow.com/questions/13018626/...
RedPixel

2
这基本上与我在答案中发布的信息相同,但是没有建议用户建议从PPA安装软件包之前应始终给出的警告。另外,将来可能还会有其他人接管ffmpeg PPA的维护,或者只是将PPA迁移或重命名。因此,链接到官方说明是正确的方法,因为它减少了冗余和维护工作。
LiveWireBT 2014年

2
这个不提供GStreamer-ffmpeg集成。@Duong的答案(mc3man是PPA)。
维克托·谢尔吉琴科

此PPA不支持utopic。
阿米尔·阿里·阿克巴里

12
现在,该PPA已删除。
MFern 2015年

8

FFMPEG软件包自一段时间以来已从Debian存储库中删除。关于将软件包再次包含在存储库中的争论仍在不断。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 <siretart@tauware.de>  Sat, 12 May 2012 22:02:03 +0200

1
不要说它是空的,saucy中的软件包包含二进制文件dpkg --contents ffmpeg_0.8.7-1ubuntu2_amd64.deb [...] -rwxr-xr-x root/root 106624 2013-10-11 10:41 ./usr/bin/ffmpeg
LiveWireBT 2014年

1
@LiveWireBT您可以单独使用该程序包吗?该单个文件只是链接avconv二进制文件的二进制文件。过渡软件包始终被视为空软件包。
Braiam 2014年

1
我们可能只是在想着同一件事,而且彼此误会了。:)
LiveWireBT

3

尝试运行时出现了相同的错误

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

ffmpeg现在,在bash提示符下,该命令应可在任何文件夹中使用。


1
dist-upgrade不需要安装ffmpeg
Raptor

1

如果要在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  

有关更多信息,请参见我的youtube视频


为什么建议为amd64共享构建?
2014年

0

如果您想要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

请享用,


-1

首次安装avconv

$ sudo apt-get install libav-tools

然后创建一个到avconvnamed 的软链接ffmpeg

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

现在您可以ffmpeg正常使用了。


/usr/bin用符号链接污染通常不是一个好主意。如果您升级到普通的Ubuntu版本并尝试ffmpeg从仓库安装,会发生什么 ?此外,avconv是一个贫穷的替代品ffmpeg:它缺少很多功能,过滤器等
llogan

-1

我花了2个星期来安装最新版本的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。祝好运

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.