Как использовать ffmpeg для конвертации ape в mp3?


10

Я пытаюсь использовать ffmpeg на Ubuntu 13.10 для преобразования AP3 в MP3?

Я установил ffmpeg , но я получаю эту ошибку, когда использую его. Подскажите пожалуйста, как мне это исправить?

$ ffmpeg -i CD1_Age_0-3_Baby.ape CD1_Age_0-3_Baby.mp3
ffmpeg version 0.8.9-6:0.8.9-0ubuntu0.13.10.1, Copyright (c) 2000-2013 the Libav developers
  built on Nov  9 2013 19:15:22 with gcc 4.8.1
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
Input #0, ape, from 'CD1_Age_0-3_Baby.ape':
  Metadata:
    Album           : MOZART EFFECT I - ENLIGHTMENT
    Title           : C:\[APE SET] Ī����ЧӦ-�������ǵ����� 4CDS\CDImage01
    Genre           : Classical
    Year            : 2002
    Comment         : Exact Audio Copy
  Duration: 01:09:17.75, start: 0.000000, bitrate: 656 kb/s
    Stream #0.0: Audio: ape, 44100 Hz, stereo, s16
Output #0, mp3, to 'CD1_Age_0-3_Baby.mp3':
    Stream #0.0: Audio: [0][0][0][0] / 0x0000, 44100 Hz, stereo, s16, 200 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
Encoder (codec id 86017) not found for output stream #0.0

Ответы:


9

Сначала убедитесь, что у вас установлен libavcodec-extra-53пакет для кодирования в mp3.

sudo apt-get install libavcodec-extra-53  

Попробуйте преобразовать файл .ape в .mp3, используя ffmpeg, и вы получите следующее сообщение:

*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release.   
Please use avconv instead.

Это то же сообщение об ошибке, которое вы получили в своем вопросе. Так что используйте avconvвместо этого. Программа avconv предоставляется пакетом libav -tools из Ubuntu Software Center. avconv, как и ffmpeg, запускается из терминала.

В этом примере используется битрейт 256 Кбит / с для файла output.mp3 и id3v2_version 3 для тегов метаданных. Сначала измените каталог, используя cdкоманду, на тот же каталог, где находится ваш файл input.ape для конвертации. Затем выполните команду:

avconv -i 'input.ape' -id3v2_version 3 -codec:a libmp3lame -b 256k 'output.mp3'

Примечание. Команда: ffmpeg -i '10 Make Peace.ape' -acodec libmp3lame -b 256k -id3v2_version 3 '10 Make Peace.mp3'также выполнит преобразование в mp3 с помощью ffmpeg, но вы получите THIS PROGRAM IS DEPRECATEDсообщение об ошибке. Пакет ffmpeg по-прежнему доступен в Ubuntu 13.10 и более ранних версиях.

В Ubuntu 14.04 пакет библиотеки кодеков Libav (дополнительные кодеки) (libavcodec-extra-53) был обновлен до libavcodec-extra-54. В Ubuntu 14.10 и 15.04 пакет библиотеки кодеков Libav (дополнительные кодеки) был обновлен до libavcodec-extra-56.

Обновления для Ubuntu 15.10 и выше

В Ubuntu 15.10 и 16.04 пакет библиотеки кодеков Libav (дополнительные кодеки) был обновлен до libavcodec-ffmpeg-extra56.

В Ubuntu 16.10, 17.04, 17.10 и 18.04 пакет библиотеки кодеков Libav (дополнительные кодеки) был обновлен до libavcodec-extra57.

В Ubuntu 18.10 и 19.04 пакет библиотеки кодеков Libav (дополнительные кодеки) был обновлен до libavcodec-extra58.


2
Обратите внимание, что «устаревшее» сообщение относится к ffmpegLibav (форк FFmpeg), а не к ffmpegFFmpeg.
— Llogan

1
Нет сообщения об ошибке в нижней части : Encoder (codec id 86017) not found for output stream #0.0. Запуск той же программы с другим именем не решает никакой реальной проблемы, он просто подавляет помехи в Libav, но -codec:a libmp3lameможет решить эту проблему.
— LiveWireBT

5

У вас есть шесть основных опций для кодирования в MP3 ffmpeg:

  • Избегайте вводящего в заблуждение беспорядка в Libav , навязанного пользователям Ubuntu, и просто загрузите, распакуйте и выполните последнюю сборку Linuxffmpeg . Вставьте ~/binи снова войдите в систему. Теперь при запуске ffmpegон будет использовать эту новую сборку. Это самый простой вариант .

  • Следуйте пошаговому руководству, чтобы скомпилировать реальноеffmpeg с любыми кодеками и функциями, которые вы хотите.

  • Установите ffmpegиз Ubuntu Multimedia for Trusty PPA (для пользователей 14.04).

  • Установите libavcodec-extra-*пакет, чтобы включить кодирование MP3 через libmp3lame в багги avconvили дрянном , старом, фальшивом ffmpeg.

  • Передайте lameи используйте его для кодирования:ffmpeg -i input -f wav - | lame - output.mp3

  • Обновите Ubuntu и используйте ffmpegпакет из репозитория. Реальный ffmpegиз FFmpeg вернулся в Ubuntu в Vivid 15.04.


2
По моему опыту, большинство проблем с конвертированием видео решаются установкой реального ffmpeg. Я использую статические сборки - без установки, без суеты, распаковки и запуска - предоставленные в ссылке в этом ответе, по крайней мере, два года (когда-нибудь обновляющиеся), и у меня не было никаких проблем.
— Rmano

1

Вот еще один сценарий, который может помочь людям. Вам нужно будет скопировать его в корневую папку файлов ape, которые вы хотите преобразовать.

#!/bin/bash

set -e

# Script Name:  convert_ape2mp3.sh
#
# Description:  The script will recursively find all *.ape files
#   and then convert them to mp3 files.
#   This script has been tested on Ubuntu 14.04 
#   
# Dependencies: (you will need to install the following library prior
#                to running this script.)
#     sudo apt-get install libav-tools
# avconv -i '01_Tori Amos_Beauty Queen - Horses.ape' -id3v2_version 3 -codec:a libmp3lame -b 320k '01_Tori Amos_Beauty Queen - Horses.mp3'

# Optional:  After conversion is complete if you want you can 
#   remove all the ape files.
#   find . -type f -name "*.ape" 
#   find . -type f -name "*.ape" -exec rm {} \;

find . -name "*.ape" -print0 | while IFS= read -r -d '' FILE; do
    echo "### Converting $FILE..."
    echo avconv -i "$FILE" -id3v2_version 3 -codec:a libmp3lame -b 320k "${FILE%.*}.mp3";
    avconv -i "$FILE" -id3v2_version 3 -codec:a libmp3lame -b 320k "${FILE%.*}.mp3";

done

1

После того, как вы установили libav_toolsи libmp3lameустановили в каталог, где находятся ape-файлы, введите в терминал:

$ for f in *.ape; do
      avconv -i "$f" -id3v2_version 3 -codec:a libmp3lame -ab 320k "${f%.ape}.mp3"
done

При этом все ape-файлы в каталоге конвертируются в mp3 стерео 320kb, а теги в ape-файлах соблюдаются.


1
Пожалуйста, проверьте ваш блок кода. Не имеет смысла (по крайней мере для меня).
— Cbhihe

Блок кода имеет смысл. Оператор for не позволяет терминалу выполнить команду после нажатия клавиши ввода. Готово завершает цикл, в то время как две линии в середине находятся внутри цикла.
— Ззач ...

@Zzzach ...: большое спасибо. Pfeww! Теперь, наконец, я знаю Баш! ;-) Более серьезно, пожалуйста, посмотрите на форматирование этого блока кода перед редактированием ...
— Cbhihe

0

Приведенный ниже скрипт преобразует все файлы wma в mp3 рекурсивно, начиная с пути, по которому выполняется команда find. Старые файлы wma будут удалены !!!

Автор сценария:

#!/bin/bash
#Command to call wma2mp3 script
#find . -name "*wma" -exec ~/wma2mp3 {} \;

ffmpeg -sameq -i "$1" "${1%.*}.mp3";
rm -f "$1";

Добро пожаловать в AskUbuntu! Не могли бы вы отредактировать свой пост, чтобы сделать скрипт легче для чтения. (Используйте> или 4 пробела перед каждой строкой)
— Без времени
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.