FFMPEG 无法将 MP4 转换为 MP3 | 没有 MP3 编码器

FFMPEG 无法将 MP4 转换为 MP3 | 没有 MP3 编码器

我面临的问题是无法使用 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

请告诉我它是否有效。:)

相关内容