ffmpeg audio

В этой статье приведены примеры работы с audio в командной строке при помощи ffmpeg, shnsplit, mp3gain и других подобных утилит.

Предлагаю рассмотреть данную тему на примерах из жизни.

Вырезать понравившуюся мелодию из видео.

Шаг 1: смотрим, в каком формате хранится аудиодорожка в видео

ffmpeg -i 'video.mp4'  2>&1 | grep Audio | sed 's/Audio: \(.*\), start/\1/g'

Видим строку типа
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 281 kb/s (default)
которая говорит о том, что видео хранится в формате aac.
Иногда бывает, что в файле несколько аудиодорожек, тогда в выводе увидим что-то типа
Stream #0:1(rus): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
Stream #0:2(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)

Шаг 2: вырезаем аудиодорожку в отдельный файл.
Если хотим вырезать дорожку без перекодирования

ffmpeg -i video.mp4 -vn -acodec copy audio.aac

Если в видео несколько аудиодорожек и мы хотим вырезать вторую, то слегка меняем вышеприведенную команду

ffmpeg -i video.mp4 -map 0:2 -vn -acodec copy audio.aac

Если хотим вырезать дорожку и сразу перекодировать ее в mp3

ffmpeg -i video.mp4 -vn -ar 44100 -ac 2 -ab 192K -f mp3 audio.mp3

Шаг 3: определяем продолжительность понравившейся мелодии и время ее начала.
Это можно сделать при помощи любого аудио- или видеоплейера. Не забудьте записать эти значения.

Шаг 4: непосредственно вырезание нужного отрезка без перекодирования.

ffmpeg -i audio.aac -ss 00:02:54 -t 300 -acodec copy output.aac

Эта команда вырежет участок длинной 300 секунд, начиная со второй минуты 54-ой секунды. Для любителей большой точности к секундам можно добавить тысячные доли секунды в формате 00:02:54.472.

Разделить flac на треки

Шаг 1: устанавливаем пакеты shntool и flac

Шаг 2: нарезаем flac на треки

shnsplit -f "abba.cue" -o flac -t "%n %t" "abba.flac"

Конвертируем flac в mp3

Если хотим конвертировать с постоянным битрейтом, то используем ключ -b:a и после него указываем необходимый битрейт. В данном примере 320 Кбит/сек.

ffmpeg -i "abba.flac" -b:a 320k "abba.mp3"

Если хотим конвертировать с переменным битрейтом, то используем ключ -q:a и после него указываем цифру от 0 до 9, где 0 - самое высокое качество (битрейт около 256 Кбит/сек), а 9 - самое низкое (битрейт около 64 Кбит/сек)

ffmpeg -i "abba.flac" -q:a 0 "abba.mp3"

Если хотим переконвертировать все flac в директории в mp3

for a in ./*.flac; do < /dev/null ffmpeg -i "$a" -q:a 0 "${a[@]/%flac/mp3}"; done

Конвертируем flac в wav

А тут еще проще - никаких ключей и параметров.

ffmpeg -i "abba.flac" "abba.wav"

Конвертируем mp3 в wav

ffmpeg -i "abba.mp3" "abba.wav"

Удалить тэги id3 из файла mp3

Посмотреть тэги id3 в файле sample.mp3

id3info sample.mp3

Удалить все тэги id3 из файла sample.mp3

id3convert -s sample.mp3

P.S. Если у Вас возникли какие-либо вопросы по работе с audio в ffmpeg или Вы не нашли ответа на свой вопрос по данной теме, то задавайте эти вопросы в комментариях под этой статьей - постараюсь на них ответить максимально быстро.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *