在 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
设置较旧的。