我面临的问题是无法使用 FFMPEG 将 MP4 视频转换为 MP3。每次我尝试时,都会收到此错误:
Unknown encoder 'libmp3lame'
但是我使用以下标志安装了 FFMPEG 和 LAME:启用 libmp3lame
所以当我跑步的时候: ffmpeg -codecs 帮助 | grep ‘mp3’在控制台中我看到标志已设置,但在列表中仍然没有 libmp3lame:
ffmpeg version 3.3.4 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 4.9.2 (Debian 4.9.2-10)
configuration: --enable-libmp3lame --extra-ldflags=-L/var/www/html/Plugins/apps/lib/ --extra-cflags=-I/var/www/html/Plugins/apps/include/
WARNING: library configuration mismatch
avutil configuration: --prefix=/var/www/html/Plugins/apps/ --enable-shared
avcodec configuration: --prefix=/var/www/html/Plugins/apps/ --enable-shared
avformat configuration: --prefix=/var/www/html/Plugins/apps/ --enable-shared
avdevice configuration: --prefix=/var/www/html/Plugins/apps/ --enable-shared
avfilter configuration: --prefix=/var/www/html/Plugins/apps/ --enable-shared
swscale configuration: --prefix=/var/www/html/Plugins/apps/ --enable-shared
swresample configuration: --prefix=/var/www/html/Plugins/apps/ --enable-shared
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
//HERE SHOULD BE LIBMP3LAME
D.A.L. mp3 MP3 (MPEG audio layer 3) (decoders: mp3 mp3float )
D.A.L. mp3adu ADU (Application Data Unit) MP3 (MPEG audio layer 3) (decoders: mp3adu mp3adufloat )
D.A.L. mp3on4
正如有人提到的这个 Ubuntu 主题
蹩脚的软件包不会将 mp3 编码添加到 FFmpeg
那么如何在 Debian 上安装 libmp3lame 以便 FFMPEG 可以使用它?
我也曾尝试安装 libmp3lame0Debian 软件包但这也并没有改变任何事情。
答案1
也许您的构建已损坏。尝试使用以下方法卸载然后安装
首先安装依赖项
sudo apt-get update
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev \
libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev \
libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev
现在为稍后下载的源文件创建一个目录
mkdir ~/ffmpeg_sources
现在安装此汇编程序,用于 x264 和 FFmpeg 使用的 x86 优化
cd ~/ffmpeg_sources
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
tar xzvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
然后安装libmp3lame
cd ~/ffmpeg_sources
wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --prefix="$HOME/ffmpeg_build" --enable-nasm --disable-shared
make
make install
然后安装ffmpeg
cd ~/ffmpeg_sources
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
--prefix="$HOME/ffmpeg_build" \
--pkg-config-flags="--static" \
--extra-cflags="-I$HOME/ffmpeg_build/include" \
--extra-ldflags="-L$HOME/ffmpeg_build/lib" \
--bindir="$HOME/bin" \
--enable-gpl \
--enable-libass \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libtheora \
--enable-libvorbis \
--enable-nonfree
PATH="$HOME/bin:$PATH" make
make install
hash -r
您可能需要重新启动设备,否则它有时无法正常工作。安装后,转到目录 ~/bin
cd ~/bin
然后在该目录中尝试运行您的命令,例如。
./ffmpeg -i ~/input.mp4 ~/videos/output.mkv
PS:在你的问题中你提到
//HERE SHOULD BE LIBMP3LAME
libmp3lame 不会存在,而是在配置中提及
configuration: --enable-libmp3lame
请告诉我它是否有效。:)