FFMPEG не может конвертировать MP4 в MP3 | Нет MP3-кодировщик
Я столкнулся с проблемой, что я не могу конвертировать MP4 видео в MP3 с FFMPEG. Каждый раз, когда я пытаюсь это сделать, я получаю эту ошибку:
Unknown encoder 'libmp3lame'
Но я установил FFMPEG и LAME с флагами: --enable-libmp3lame
Поэтому, когда я бегу: ffmpeg -codecs help | 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
Итак, как я могу установить libmp3lame на Debian, чтобы FFMPEG мог его использовать?
Также я уже пытался установить libmp3lame0 из пакетов Debian, но это также ничего не изменило.
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
Теперь установите этот ассемблер для оптимизаций x86, используемых x264 и FFmpeg
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
Дайте мне знать, если это работает или нет.:)