如何用(真正的)ffmpeg替换avconv并使其正常工作?


27

更新(原始文本保留在下面)

随着真正的ffmpeg即将返回(在15.04中),Jon Severinsson的PPA不再起作用(对于ffmpeg),并且avconv-ffmpeg(现在称为“ libav ”)和真正的ffmpeg(现在回到“ ffmpeg ”)都从临时版本中,问题就变成了:如何最轻松地在2015年之前的发行版中安装ffmpeg?

/更新

任何人都知道如何安装真正的当前ffmpeg(不是Ubuntu附带的avconv的旧版本)而没有这里提到的问题?

原因:

  • 一切正常(或使许多人写的),
  • 使用新的语法,并
  • 经过一番研究-并没有引起争议-我只是相信打包程序在使用avconv时犯了一个错误。这是一个修复程序。

显然,由于版本冲突,它并不那么容易,而且avconv和ffmpeg不能在同一台机器上共存(在以上链接的文章的可接受答案中有注明)。尽管至少有一个指南提到在本地安装ffmpeg(〜)以实现共存。

我的版本是Precise 12.04.3 LTS,但看来这也适用于较新的版本。


3
您是否看到过如何在Ubuntu上编译FFmpeg的方法?它与回购中的任何libav垃圾均不冲突。
llogan

1
我建议您改一下“原因”部分。似乎您在暗示ffmpeg优于avconv的事实是事实,并且Ubuntu用户遇到了麻烦,因为存储库中的软件已损坏。这可能会使一些新手感到困惑和恐惧。我希望您能理解我的观点,因为您似乎同意,最好不要“引起争议”。
Andrea Lazzarotto 2014年

1
@Brad我一直认为通过让新用户认为自己的软件已损坏并且需要“修复”它来吓new新用户是错误的。
2014年

1
@AndreaLazzarotto没有人试图吓anyone任何人。问题中有一种意见,特别是一种意见。该意见是问题的重要组成部分。
布拉德

1
大家好,感谢您的评论。由于ffmpeg虚假的avconv版本已从所有最新版本中删除,因此不再需要卸载(也不再存在争议:^)。乔恩·塞弗林森(Jon Severinsson)会定期更新其PPA,因此真正的ffmpeg可以轻松安装和更新。这篇文章现在将作为此处的更新。(稍后将进行全面清理。)
2014年

Answers:


25

2015年之前版本的更新答案

因为没有人像Jon Severinsson那样维护一个包罗万象的PPA,所以Rmano使用静态构建的方法现在是最简单的。注意更新必须手动检查并完成。

  1. 转到ffmpeg官方下载页面后,单击Linux Static Builds下的链接。(目标可能会更改,因此此处未直接链接。)
  2. 单击适当的(32位或64位)和所需的(快照或编号)版本进行下载。(建议使用快照。)
  3. 如果已安装ffmpeg的libav版本,请将其删除。两者不能驻留在同一台机器上。如果先前未安装libav,请跳至4。

    sudo apt-get remove ffmpeg  
    sudo apt-get purge libav-tools  
    # *Ignore any autoremove message that may appear.*
    
  4. 提取文件(和两个目录),如下所示:

    • 对于单用户系统:到$ HOME / bin
    • 对于多用户设置:到/ usr / local / bin

静态构建安装完成,并且ffmpeg可以使用。

更新:检查并找到较新的发行版时,可以按日期对安装文件夹进行排序,并快速识别和删除现有版本文件。(所有时间戳都与ffmpeg二进制文件相同。)然后可以下载更新并提取与早期版本相同的更新。

如果全面的ffmpeg回购重新出现,它将像以前一样安装:

# Replace avconv with the real ffmpeg
#   www.askubuntu.com/a/373509/165265
#
sudo add-apt-repository ppa:<name of ppa here>
sudo apt-get update
sudo apt-get install ffmpeg

随着真正的ffmpeg返回2015年及以后的版本,对这种变通方法的需求最终将消失。

非常感谢社区的帮助。


4
ew 谢谢。avconv似乎与ffmpeg非常接近,但是似乎有一些不同的标志。不用了,谢谢。FFMPEG效果很好。我可以考虑让Ubuntu切换的唯一原因是一些政治原因。忘了那个声音。ffmpeg ftw!
James T Snell 2014年

1
sudo apt-get dist-upgrade对于我而言,此行似乎不必要。大多数尝试安装ffmpeg的人可能不想触发发行版升级作为副作用。
cxrodgers 2014年

@cxrodgers,绝对正确。立即修复,谢谢。
u2n

1
你可能现在要更新这个答案是乔恩- severinsson PPA是水涨船高:stackoverflow.com/questions/29585700/...
cxrodgers

1
符号链接应指向/usr/local/bin防止提供命名文件的任何repo包潜在冲突的地方。尤其是来自libav-tools软件包qt-faststartffmpeg适用于12.04及更早版本的假冒“ ”。另外,其他用户可能没有适当的权限来执行其他用户的任何操作~/bin(但我没有对此进行调查)。最后,我认为可以删除此答案中的整个“ / UPDATE”部分:它已过时(PPA消失了)并且不再起作用。
llogan

7

我使用FFmpeg项目提供的静态版本没有问题。http://ffmpeg.org/download.html中有链接

下载所需的版本/内部版本(32位或64位),然后将可执行文件放入您的文件中$PATH(例如,~/bin)。如果已放置,则~/bin可以注销然后重新登录,或者直接运行. ~/.profile,以使您的Shell识别出它在中$PATH。现在,您只需输入即可ffmpeg使用新的静态版本。

例如:

% wget http://johnvansickle.com/ffmpeg/builds/ffmpeg-git-64bit-static.tar.xz
% tar xJvf ffmpeg-git-64bit-static.tar.xz
% cd ffmpeg-git-20150427-32bit-static
% ./ffmpeg
ffmpeg version N-45164-g46778ab- http://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.9.2 (Debian 4.9.2-10)
[...]

完全静态应该在各种Linux版本上都没有问题(在一定程度上,内核应该不太老)。


1
谢谢,Rmano。当我达到魔幻数字时,将立即投票支持您的答案。之所以选择“替代”,是因为从我所读的内容来看,使静态构建可靠的东西-内置了所有依赖关系-也使它们“沉重”(庞大且占用大量内存)。出于这个原因,我不赞成采用程序的正常重量,自动更新的版本。...以为我可能已经知道了,即将发布...
2

好吧,尽管对于静态可执行文件通常是正确的,但是在这种情况下,ffmpeg不使用图形库或繁杂的通用库。显然,如果最终并行运行ffmpeg的各种副本,那是对的。
Rmano 2013年

2
接受的答案PPA路由包含的版本为wayyyyyy的0.1版本。您将需要使用此答案的方法来使许多命令起作用。
deadghost
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.