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


为什么该软件包不可用?

评论

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

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

#1 楼

最新新闻


WEB UPD8:FFmpeg通过Ubuntu 15.04 Vivid Vervet返回官方的Ubuntu存储库




FFmpeg和libav

libav

Ubuntu在最近的发行版中开始交付libav fork而不是FFmpeg。如果安装了ffmpeg软件包,则实际上安装了libav-tools软件包和一个告诉您将来使用avconv而不是ffmpeg的程序,给人的印象是ffmpeg已被弃用,实际上并不是这样。
< br过渡的ffmpeg软件包似乎已从trusty / Ubuntu 14.04中删除(比较软件包文件列表中源软件包的安全性和可信性)。

因此,一种选择是安装libav-工具包,请改用avconv(注意,这不是“主线” FFmpeg,而是显眼的叉子)。

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

相关问题:




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

从源代码安装

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

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



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


叉子是如何发生的?

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

在2011年1月18日浏览Git commits




-commit f4f5cab94e0881cd30965b28f3d78d9c63d6918e

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


2011年7月27日-提交6291d7e41605c0b1e9debfae8a2b1d4cf7b0e0b3

avconv被引入:


用新名称avconv复制ffmpeg。

它将进行一些不兼容的更改而进一步开发。
< br ffffeg.c将保持原状一段时间,因此使用该脚本的脚本不会被破坏。




2011年7月27日-提交791a86c37a03b94207bc2d0ad4cbe7f39d7e495a

警告已添加到ffmpeg.c源代码的分叉版本中,


2012年1月12日-提交0fec2cb15cc6ff1fcc724c774ec36abadcb7b6ad

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


libav.org上的官方公告

以下帖子来自新闻部分(最旧的在最后):


2011年8月9日

2011年9月12日更新。

为了与我们的新名称保持一致,我们将ffplay重命名为avplay,
ffserver到avserver,ffprobe到avprobe。它们的行为是相同的,只是名称被更改。

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

avconv和ffmpeg之间的区别是:

[...]

注意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域。


网站:http://www.libav.org/

Git :git://git.libav.org/libav.git(请参阅http://libav.org/download.html)
命运: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存储库。请参见相应的项目下载页面。

评论


这种变化何时发生?

–赛斯
2014年4月4日在1:47

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

– LiveWireBT
2014年4月4日在2:33

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

–赛斯
2014年4月4日在2:35



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

–RobotHumans
14年4月4日在20:58

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

– LiveWireBT
2014年4月4日在21:28

#2 楼

libav项目中的ffmpeg程序已将avconv替换为以前的版本。

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

sudo apt-get install libav-tools


avconvffmpeg非常相似,但它们在语法上也有所不同。

编辑:似乎Ubuntu 16.04LTS的存储库中再次具有ffmpeg,因此libav-tools是一个伪包,仅创建别名avconv -> ffmpeg(及其他)

评论


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

–亚伦·霍尔
16-6-4在20:26



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

– Rutrus
16-6-5在23:11



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

–亚伦·霍尔
16年5月5日在23:48

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

–亚伦·霍尔
16 Jun 5'23:57



libav-tools是ffmpeg的fork。 ffmpeg在2012年至2014年间由Ubuntu Repos中的avconv取代。您可以问这个新问题作为答案,也可以自己找一个。从Ubuntu 15.04开始,您可以再次使用ffmpeg。摘要:libav与ffmpeg语法兼容,但反之则不然。

– Rutrus
16年6月7日在13:54

#3 楼

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

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


观看输出

评论


它必须是:`sudo add-apt-repository ppa:mc3man / trusty-media :)无法编辑此字符,更改的字符不足。

– IndexOutOfBoundsException
2014年5月24日上午9:23

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

– LiveWireBT
2014年6月2日19:10

这不再起作用了。

–MadeOfAir
15年4月22日在17:03

确实有效。我刚刚添加了此PPA,现在正在安装FFMPEG。

–穆罕默德·本·尤斯拉特(Muhammad bin Yusrat)
15年8月4日在21:48

@LiveWireBT(及其他)PPA现在作为FFmpeg下载页面上的Ubuntu链接提供...

–野生
2015年9月7日在22:31

#4 楼

您也可以使用以下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


评论


修复了apt-add-repository-> add-apt-repository。如果apt-add-repository对您不再有用,请尝试以下操作:stackoverflow.com/questions/13018626/…

– RedPixel
2014年5月5日18:05

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

– LiveWireBT
2014年6月2日19:37

这个不提供GStreamer-ffmpeg集成。 @Duong的答案(mc3man的PPA)可以。

– Victor Sergienko
2014年8月11日12:33

此PPA不支持utopic。

–阿米尔·阿里·阿克巴里(Amir Ali Akbari)
15年2月27日在12:38

现在,此PPA已删除。

–MFern
2015年4月10日在20:54

#5 楼

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


评论


不要说它是空的,安全的软件包包含二进制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年4月4日在18:56

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

–脑袋
14年4月4日在21:05

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

– LiveWireBT
14年4月4日在21:08

#6 楼

尝试运行时遇到相同的错误

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应该可以在任何文件夹中使用。

评论


安装ffmpeg不需要dist-upgrade

–猛禽
16年3月11日在10:44

#7 楼

如果要在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共享的版本??,几乎没有收获,而且可能破坏依赖于这些共享库的其他应用程序。

– Doug
14年5月13日在22:43

您忘记提及在哪里下载资源

–山本彰(Akira Yamamoto)
20年6月17日在2:23

#8 楼

如果您想要GitHub上的最新版本,它可以满足从youtube-dl产生的错误之类的需求,请发出以下cmds:

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


享受,

#9 楼

首先安装avconv

$ sudo apt-get install libav-tools


,然后创建一个名为avconvffmpeg的软链接:

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


现在您可以正常使用ffmpeg

评论


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

– llogan
16年7月23日在5:02

#10 楼

我花了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。
祝你好运