Извлечение WAV из MP4 при сохранении максимально возможного качества

39

Я просмотрел документацию и могу извлечь wavфайл из mp4файла командой:

ffmpeg -i my_video.mp4 output_audio.wav

Тем не менее, как я могу контролировать качество wavфайла? (например, скажем, я хочу сохранить качество исходного звука настолько, насколько я могу)

Амелио Васкес-Рейна
источник

Ответы:

20

wavФайлы обычно содержат несжатый звук, и это по умолчанию при создании wavфайла с использованием ffmpeg. Таким образом, ваша команда уже сохранит максимальное качество, поскольку отсутствует сжатие с потерями (или любое другое сжатие) для снижения качества.

Предполагая, что исходное аудио сжато, вы можете сохранить то же качество без большого размера файла, необходимого для несжатого аудио, просто скопировав исходное аудио (без видео) в новый mp4файл:

ffmpeg -i my_video.mp4 -c copy -map 0:a output_audio.mp4

Вы также можете перекодировать его или преобразовать в другой аудиокодек, но если этот кодек использует сжатие с потерями, качество будет потеряно.

mark4o
источник
Спасибо. Как насчет частоты дискретизации и количества байтов в секунду? Как ffmpeg выбирает их автоматически?
Амелио Васкес-Рейна
Частота дискретизации будет такой же, как на входе. Поскольку он несжатый, битрейт для wavфайла - это просто частота дискретизации × размер выборки × количество каналов . Если вы хотите снизить качество, вы можете попросить ffmpegпересчитать его на более низкую частоту, изменить его на 8-битный PCM или понизить на моно, но по умолчанию этого не происходит.
mark4o
1
Кстати, вы также можете попросить его сделать повторную выборку с более высокой скоростью, но это только увеличит размер файла, а не качество, так что в этом нет особого смысла, если вам не нужна конкретная частота выборки.
mark4o
1
В моей системе с Ubuntu 14.04 я должен был использовать -acodec copyвместо-c copy -map 0:a
Даниэль Алдер
Он не экспортируется в виде волнового файла и не отвечает на вопрос.
Андрей
22

Извлечение Lossless / Lossy Audio из видео ( flv / mp4 to wav / flac / mp3) Использование ffmpegверсии 2.3.1 в Ubuntu 14.04

Посетите: http://howto-pages.org/ffmpeg/

Прежде всего найдите исходные данные из источника. Откройте видео в VLC Player. Перейти к

> Tools > Codec Information 
> Stream 0 (Video/ Codec/ Resolution/ Frame rate) 
> Stream 1 (Audio/ Codec/ Channel/ Sample rate)

Рассмотрим входной файл ( -i), например, input.mp4или другие файлы- flv, avi, ...). Чтобы удалить video ( -vn) и вывести звук без сжатия ( output.wav) с частотой дискретизации 44100 Гц ( -ar 44100) в импульсном коде, модулированном с помощью 16-битных -acodec pcm_s16leотсчетов с прямым порядком байтов ( ) и 2 каналов (стерео) ( -ac 2), используйте следующую команду.

ffmpeg -i input.mp4 -vn -acodec pcm_s16le -ar 44100 -ac 2 output.wav

Другие -acodecварианты есть mp3 flac m4a.

-acode flacпреобразует в 24-битный файл Для 16-битной выборки это должно быть

ffmpeg -i input.mp4 -acodec flac -bits_per_raw_sample 16 -ar 44100 output.flac

файлы wav и flac больше, чем файл mp4

ac3конвертация работает, -acodec 3F2R/LFE -ac 6но создает 4 фиктивных трека, как проверено в Audacity.

Для конвертации mp3 просто используйте

ffmpeg -i input.mp4 -vn -acodec mp3 -ab 320k -ar 44100 -ac 2 output.mp3

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

$ ffmpeg -help
dr.murli
источник
1
Это не отвечает на вопрос. ОП уже знает, как извлечь аудио в виде файла WAV. Они спрашивают, как контролировать качество - что, конечно, на самом деле невозможно, и, следовательно, должно было быть ответом (как у mark4o). MP3 и FLAC также выходят за рамки.
Slhck
Я пришел по этой ссылке для решения, и когда я работал вокруг, я получил еще немного, как я уже упоминал. Проблема, как я понял, и над которой я тоже работал, заключается в том, «как я могу контролировать качество wav-файла? (Например, скажу, что я хочу сохранить качество исходного звука настолько, насколько смогу)». Я не технарь, но любитель и новичок в Ubuntu и ffmpeg. $ ffmpeg -i input.mp4 также дает все начальное качество, и параметры могут быть добавлены соответственно, чтобы получить максимум.
dr.murli
Unknown encoder 'pcm_s161e'Посоветуйте, пожалуйста, как решить эту проблему.
kRazzy R