Преобразование mp4 в mp3


82

У меня есть видео, которое мне нужно конвертировать в mp3 (из командной строки - не GUI): video.mp4

Я пытался:

ffmpeg -i -b 192 video.mp4 video.mp3

без успеха. Я получаю следующую ошибку:

WARNING: library configuration mismatch
Seems stream 0 codec frame rate differs from container frame rate: 59.83 (29917/500) -> 59.75 (239/4)
WARNING: The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s 
Encoder (codec id 86017) not found for output stream #0.0

так что я попробовал хромать

lame -h -b 192 video.mp4 video.mp3

Я получил:

Warning: unsupported audio format

Я что-то пропустил?


1
изменить -b на
-ab

Ответы:


115

Для FFmpeg с кодированием с постоянным битрейтом (CBR):

ffmpeg -i video.mp4 -vn \
       -acodec libmp3lame -ac 2 -ab 160k -ar 48000 \
        audio.mp3

или если вы хотите использовать кодирование с переменным битрейтом (VBR):

ffmpeg -i video.mp4 -vn \
       -acodec libmp3lame -ac 2 -qscale:a 4 -ar 48000 \
        audio.mp3

Пример VBR имеет целевой битрейт 165 Кбит / с с диапазоном битрейтов 140 ... 185.


7
Предполагая, что хром уже установлен.
Дарт Egregious

ха спасибо, это именно то, что я ищу
aki

2
Единственный дополнительный шаг к этомуsudo apt-get install libavcodec-extra-53
Джейсон Шайрер

2
Или, так как это Ubuntu, ubuntu-limited-extras , который включает libavcodec-extra-53 среди других вещей. Вы, возможно, установили это уже, поскольку установочный компакт-диск предлагает сделать это.
Томасруттер

1
Моя правка добавлена ​​в пример VBR и помечена для примера с фиксированным битрейтом как CBR ...
andrew.46

12

У меня есть shell-скрипт, который использует mplayer(чтобы он мог конвертировать все, что mplayerможет играть), чтобы извлечь аудио, а затем кодировать его, используя lame. Вот код:

#! /bin/bash
# any2mp3.sh
# Converts to mp3 anything mplayer can play
# Needs mplayer amd lame installed

[ $1 ] || { echo "Usage: $0 file1.wma file2.wma"; exit 1; }

for i in "$@"
do
    [ -f "$i" ] || { echo "File $i not found!"; exit 1; }
done

[ -f audiodump.wav ] && {
    echo "file audiodump.wav already exists"
    exit 1
}

for i in "$@"
do
    ext=`echo $i | sed 's/[^.]*\.\([a-zA-Z0-9]\+\)/\1/g'`
    j=`basename "$i" ".$ext"`
    j="$j.mp3"
    echo
    echo -n "Extracting audiodump.wav from $i... "
    mplayer -vo null -vc null -af resample=44100 -ao pcm:waveheader:fast \
    "$i" >/dev/null 2>/dev/null || {
        echo "Problem extracting file $i"
        exit 1
    }
    echo "done!"
    echo -n "Encoding to mp3... "
    lame -m s audiodump.wav -o "$j" >/dev/null 2>/dev/null
    echo "done!"
    echo "File written: $j"
done
# delete temporary dump file
rm -f audiodump.wav

Сначала тебе нужно apt-get install mplayer lame. После этого поместите код в файл с именем '' any2mp3.sh '', дайте разрешение на выполнение и поместите его в ваш $ PATH, и вы сможете сделать:

$ any2mp3.sh file.mp4 another-file.wma yet-another.file.ogg

Он преобразует каждый файл, переданный в mp3 с тем же именем.

Это немного грубо, но делает работу.


я сделал все, и я получаю: -rw-r--r-- 1 aki aki 7104 2011-12-02 10:41 video.mp3который не играет
аки

это странно ... кажется, что хромой не может преобразовать WAV. попробуйте удалить >/dev/null 2>/dev/nullкод из кода, чтобы увидеть сообщение об ошибке.
Элиас

не повезло, вот вывод: pastebin.com/ALrTqCmk обоих преобразований
aki

И проигрывает ли audiodump.wav? Если этого не mplayerпроизойдет, вы не сможете воспроизвести файл video.mp4, и вам действительно не повезет. Может быть, файл, который вы пытаетесь преобразовать, поврежден, можете ли вы проверить этот процесс с другим файлом?
Элиас

нет, wav не играет, ни mp4 от mplayer
aki

11

SoundConverter Установите звуковой преобразователь

Установить через центр программного обеспечения

является ведущим конвертером аудиофайлов для рабочего стола GNOME. Он читает все, что может прочитать GStreamer (Ogg Vorbis, AAC, MP3, FLAC, WAV, AVI, MPEG, MOV, M4A, AC3, DTS, ALAC, MPC, Shorten, APE, SID, MOD, XM, S3M и т. Д. ... ) и записывает в файлы WAV, FLAC, MP3, AAC и Ogg Vorbis или использует профиль аудио GNOME.

SoundConverter стремится быть простым в использовании и очень быстрым. Благодаря многопоточному дизайну он будет использовать как можно больше ядер для ускорения конвертации. Он также может извлекать аудио из видео.

Как конвертировать MP4 в MP3 с VLC

  • Откройте VLC Media Player. Нажмите «Медиа»> «Конвертировать», чтобы открыть окно «Открыть медиа». Нажмите кнопку «Добавить» в правой части экрана, чтобы войти в Windows Explorer. Найдите MP4 на вашем жестком диске, который вы хотите конвертировать. Нажмите кнопку «Преобразовать» в нижней части экрана.

  • Выберите имя целевого файла.

  • Перейдите на вкладку «Аудиокодек» и выберите «MP3» в раскрывающемся списке «Кодек». Нажмите кнопку «Пуск», чтобы начать преобразование MP4 в MP3-аудио.

  • Нажмите Пуск


4
Но ОП попросил решение для командной строки.
Натан Осман

7

Я использую этот небольшой скрипт для конвертации m4a в mp3.

#!/bin/bash
for i in *.m4a; do
    avconv -i "$i" -vn -acodec libmp3lame -ac 2 -ab 160k -ar 48000 "`basename "$i" .m4a`.mp3"
done

Если он говорит, что avconvесли он не найден, установите ffmpeg и замените его наffmpeg
sanoJ

5

Я думаю, что проблема в вашем синтаксисе команды ffmpeg.

ffmpeg -i source_filename -vn -ab 192k -acodec libmp3lame -ac 2 output_filename

должно сработать.


я получаю: Ожидаемое число для переменного тока , но найдено: liblamemp3
аки

2

Во-первых, вы должны понять несколько вещей.

MP3это аудио формат.

MP4это видео формат.

Чтобы получить звук из MP4 (и сохранить его как MP3), используйте soundconverter Установите звуковой преобразователь .


1
+1 молодец за то, что указал на разницу между mp4 и mp3.
fossfreedom

2

Чтобы преобразовать Upd_Sanity.mp4 в Upd_Sanity.mp3

$ sudo apt-get install ffmpeg && sudo apt-get install libavcodec-extra-53

$ ffmpeg -i Upd_Sanity.mp4 -vn -acodec libmp3lame -ac 2 -ab 160k -ar 48000 Upd_Sanity.mp3

ИЛИ (как ffmpegне рекомендуется)

$ avconv -i Upd_Sanity.mp4 -vn -acodec libmp3lame -ac 2 -ab 160k -ar 48000 Upd_Sanity.mp3

Описание

   -i        input file name
   -vn       disable video recording
   -acodec   force audio codec to libmp3lame
   -ac       set the number of audio channels
   -ar       set the audio sampling frequency

Если вам нужно использовать его часто,

ШАГ 1. Создайте функцию bash, которая выполняет преобразование

## utilities.sh
convertMP4toMP3(){
echo -n "Enter source mp4 file : "
read sourceFile

echo -n "Enter destination mp3 file : "
read destFile

avconv -i $sourceFile -vn -acodec libmp3lame -ac 2 -ab 160k -ar 48000 $destFile
}

ШАГ 2: исходный код этого bash-файла

 $ source utilities.sh

ШАГ 3: начать преобразование, вызывая вышеуказанную функцию convertMP4toMP3

 $ convertMP4toMP3
 Enter source mp4 file : Upd_Sanity.mp4
 Enter destination mp3 file : UPd_sanity.mp3

Рекомендации

utilities.sh


1

Можно использовать Lame напрямую, если вы используете FFmpeg и передаете вывод lame (через stdout и stdin). Пример:

ffmpeg -i video.mp4 -vn -f wav - | \
       lame -V 3 - audio.mp3

Это позволяет вам использовать значительные параметры командной строки lame, если вы хотите изучить их ...


0

Вы можете попробовать конвертировать его с помощью vlc или звукового конвертера. Зайдите на http://soundconverter.org/ sound converter или найдите в своем программном центре или используйте vlc для конвертации. open vlc media convert / save выберите ваш файл, выберите выходной формат, выберите имя и место назначения и начать парить вот и все



0

Несмотря на то, что это GUI, вы можете использовать Audacity для управления фиксированным или переменным, а также качеством вывода при конвертации MP4 в MP3.

Откройте Audacity, откройте целевой файл MP4, нажмите «FILE», «EXPORT», а затем выберите тип вывода (по умолчанию MP3) и нажмите «SAVE». Он открывает аудиоканал (ы) MP4, экспортирует аудио MP3 в любое место (и независимо от того, где вы его сохраняете), и у вас ничего нет (преобразование 400-мегабитного MP4 в MP3 на чипе AMD с тактовой частотой 3 ГГц занимает около 10 минут. с частотой дискретизации 160 кбит / с для аудио, и аудиофайл будет примерно вдвое больше, чем MP4).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.