Как использовать 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.