Извлечение аудио из видео с помощью ffmpeg

Базовая команда

bash

ffmpeg -i video.mp4 -vn -c:a copy audio.m4a
  • -i video.mp4 — входной файл
  • -vn — не включать видео (no video)
  • -c:a copy — копировать аудиопоток без перекодирования (быстро, без потери качества)
  • audio.m4a — выходной файл

Формат контейнера нужно подбирать под кодек аудио из видео, иначе copy не сработает.

Как узнать, какой аудиокодек в видео

bash

ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of default=nw=1 video.mp4

Или просто посмотреть всё:

bash

ffprobe video.mp4

Найдите строку Stream #0:1: Audio: ... — например aacmp3ac3opusvorbis.

Подбор выходного формата под кодек

Аудиокодек в видеоКоманда
AACffmpeg -i video.mp4 -vn -c:a copy audio.m4a
MP3ffmpeg -i video.mp4 -vn -c:a copy audio.mp3
AC3 / EAC3ffmpeg -i video.mkv -vn -c:a copy audio.ac3
Opusffmpeg -i video.webm -vn -c:a copy audio.opus
Vorbisffmpeg -i video.ogv -vn -c:a copy audio.ogg
FLACffmpeg -i video.mkv -vn -c:a copy audio.flac
PCMffmpeg -i video.mov -vn -c:a copy audio.wav

Если нужно перекодировать (например, в MP3)

bash

ffmpeg -i video.mp4 -vn -c:a libmp3lame -q:a 2 audio.mp3
  • -q:a 2 — переменный битрейт, качество ~190 kbps (0 — лучшее, 9 — худшее).

Или с постоянным битрейтом:

bash

ffmpeg -i video.mp4 -vn -c:a libmp3lame -b:a 192k audio.mp3

В AAC:

bash

ffmpeg -i video.mp4 -vn -c:a aac -b:a 192k audio.m4a

Полезные дополнения

  • Выбрать конкретную аудиодорожку (если их несколько):bashffmpeg -i video.mkv -vn -map 0:a:1 -c:a copy audio.m4aгде 1 — индекс аудиопотока (0 — первая дорожка, 1 — вторая и т.д.).
  • Обрезать фрагмент (с 30-й секунды, длительностью 60 сек):bashffmpeg -ss 00:00:30 -i video.mp4 -t 60 -vn -c:a copy audio.m4a
  • Пакетно для всех mp4 в папке:bashfor f in *.mp4; do ffmpeg -i «$f» -vn -c:a copy «${f%.mp4}.m4a»; done
  • Перезаписать файл молча (-y) или не перезаписывать (-n):bashffmpeg -y -i video.mp4 -vn -c:a copy audio.m4a

Проверка результата

bash

ffprobe audio.m4a

Если при -c:a copy ffmpeg ругается на несовместимость контейнера — просто смените расширение выхода на подходящее из таблицы выше или перекодируйте (-c:a aac/libmp3lame).

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