Как я могу конвертировать MP4 видео в MP3 аудио с помощью FFmpeg?

120

Мне нужно извлечь аудиодорожку MP3 из видео MP4 с помощью ffmpeg. Я могу сделать это для .flv -> mp3, но я не знаю параметров командной строки для mp4-> mp3. Например, flv -> mp3:

ffmpeg -i video.flv -acodec copy audio.mp3

Какие параметры я должен использовать для mp4 -> mp3?

Стивен Пенни
источник
2
Если вам не нужен MP3, я бы не стал конвертировать аудио: MP4-> MP3 - это преобразование с потерями, вы потеряете дополнительную информацию об источнике.
Том Виггерс
больше нет ffmpeg для Ubuntu 14.04
Луи
@ThomWiggers это обязательно с потерями? Я не знаю, как кодируются mp4s, но если вы можете разделить видео и аудио, это не должно быть
откровенно
Первоначальная версия этого вопроса не была ясна, как был закодирован звук - это изменилось в редактировании. Remuxing не должен быть с потерями.
Том Виггерс

Ответы:

151

Основная команда:

ffmpeg -i filename.mp4 filename.mp3

или же

ffmpeg -i video.mp4 -b:a 192K -vn music.mp3

Проверьте этот URL: MP4 видео в MP3 файл с использованием ffmpeg (Ubuntu 9.10 Karmic Koala)

Примечание: Ubuntu не предоставляет FFmpeg, но развилку с именем Libav . Синтаксис тот же - просто используйте avconvвместо ffmpegприведенных выше примеров.

Нага Хариш М
источник
3
Спасибо! Это качество лучше, или я могу сделать лучше?
попробуйте с 320kbs en.wikipedia.org/wiki/MP3#Bit_rate
больше нет ffmpeg для Ubuntu 14.04
Луи
2
@Louis Вы все еще можете загрузить его с ffmpeg.org/download.html
slhck
1
@Louis - то же самое для 14.10, но, по-видимому, он возвращается в 15.04
Уилф
52

Лучший способ кодировать MP3 - использовать -q:aпеременную скорость передачи данных.

ffmpeg -i k.mp4 -q:a 0 -map a k.mp3

Эта qопция может использоваться только с libmp3lame и соответствует -Vопции LAME . Видеть:

Стивен Пенни
источник
@slhck ... это хорошая точка зрения, но я только что проверил видеофайл, а пропуски -vnпросто копируют аудиопоток. Я полагаю , FFmpeg должен иметь какой - то способ определения разницы (я только что проверил файл с ffprobe, и видео было поток 1 , а не обычный 0, и имел некоторые метаданные: comment : Cover (front))
evilsoup
Этот наконец-то играл также Android Music Player. Спасибо
michalzuber
1
И преобразовать весь каталог (включая имена файлов с пробелами) с помощью приведенной выше команды: для i в * .mp4; do ffmpeg -i "$ i" -q: a 0 -map a "$ (базовое имя" $ {i / .mp4} "). mp3"; сделанный;
kingSlayer
Чем результирующий .mp3 отличается от ванильной команды ffmpeg -i vid.mp4 audio.mp3в ответе @Naga Harish M? Меньше потерь?
откровенно