通过 avconv 转换为 ogg - 未知编码器“libtheora”(ubuntu 16.04)

通过 avconv 转换为 ogg - 未知编码器“libtheora”(ubuntu 16.04)

在 Ubuntu 16.04 中,我尝试使用

"input.avi" -c:v libtheora -qscale:v 6 -c:a libvorbis -qscale:a 5 "out.ogv"

但我收到此错误:

Unknown encoder 'libtheora'

Ubuntu 14.04 中没有错误。我该怎么办?

答案1

Ubuntu 16.04 Xenial Xerus LTS 确实仍然有一个名为的软件包libav-tools

andrew@athens:~$ apt-cache policy libav-tools
libav-tools:
  Installed: 7:2.8.6-1ubuntu2
  Candidate: 7:2.8.6-1ubuntu2
  Version table:
 *** 7:2.8.6-1ubuntu2 500
        500 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        500 http://archive.ubuntu.com/ubuntu xenial/universe i386 Packages
        100 /var/lib/dpkg/status

因此仍然有avconv。但是包中的所有可执行文件libav-tools都是指向相关 FFmpeg 可执行文件的指针

andrew@athens:~$ ls -l /usr/bin/{avconv,avplay,avprobe}
lrwxrwxrwx 1 root root 6 Mar 15 06:32 /usr/bin/avconv -> ffmpeg
lrwxrwxrwx 1 root root 6 Mar 15 06:32 /usr/bin/avplay -> ffplay
lrwxrwxrwx 1 root root 7 Mar 15 06:32 /usr/bin/avprobe -> ffprobe
andrew@athens:~$ 

现在可以对 FFmpeg 进行 libtheora 编码测试,如下所示,这是我在 Xenial 安装上进行的测试:

andrew@athens:~$ ffmpeg -encoders 2>/dev/null | grep theora
 V..... libtheora            libtheora Theora (codec theora)

因此,FFmpeg 的库存、未修改的安装(或虚拟libav-tools包)可以使用 libtheora 成功编码视频

我给你的最佳建议是完全删除系统上的所有 FFmpeg 或 libav-tools 副本,以及彻底删除旧版本 Ubuntu 的 FFmpeg PPA,然后运行:

sudo apt-get install ffmpeg libavcodec-extra

一切都会好起来的:)

答案2

通过使用这个解决:添加 ffmpeg PPA:

sudo 添加 apt 存储库 ppa:mc3man/trusty-media

接下来我在突触中找到ffmpeg并在菜单中:Package –> Force Version设置较旧的。

相关内容