У меня есть 228 файлов mp4 (2,6 ГБ), и я хотел бы извлечь из них аудио (mp3 или ogg). Я хочу извлечь их из партии - желательно с помощью bash. Я не уверен, что все файлы используют один и тот же аудиокодек, как они были записаны в разные годы, начиная с 2006-2012 гг.
Я хочу просмотреть их все, выбрать имя файла, определить аудиокодек и использовать ffmpeg для извлечения аудио.
Является ли это возможным?
Ответы:
Вы говорите, что хотите «извлечь аудио из них (mp3 или ogg)». Но что, если аудио в файле mp4 не является одним из них? в любом случае вам придется перекодировать. Так почему бы не оставить определение аудио формата до ffmpeg?
Чтобы конвертировать один файл:
Чтобы преобразовать много файлов:
Конечно, вы можете выбрать любые параметры ffmpeg для аудио кодирования, которые вам нравятся, установить такие параметры, как битрейт и так далее.
Используйте
-acodec libmp3lame
и измените расширение с.ogg
на на.mp3
для кодирования mp3.Если вы действительно хотите извлечь аудио, вы можете просто «скопировать» звуковую дорожку в файл, используя
-acodec copy
. Конечно, основное отличие состоит в том, что транскодирование выполняется медленно и интенсивно, но копирование выполняется очень быстро, поскольку вы просто перемещаете байты из одного файла в другой. Вот как скопировать только звуковую дорожку (при условии, что она в формате mp3):Обратите внимание, что в этом случае формат аудиофайла должен соответствовать тому, что имеет контейнер (т. Е. Если аудио имеет формат AAC, вы должны сказать
audiofile.aac
). Вы можете использоватьffprobe
команду, чтобы увидеть, какой кодек у вас есть, это может предоставить некоторую информацию:Возможный способ автоматического анализа аудиокодека и присвоения ему аудиофайла соответственно:
Примечания: выходные файлы создаются в подкаталоге, который
output
он создает в начале (при необходимости). Для других кодеков, кроме mp3 и vorbis, он конвертирует аудио в ogg. Ubuntu 14.04 не имеет ffmpeg в стандартных репозиториях, но вы можете добавить ppa: mc3man / trusty-media repository и установить пакет ffmpeg для получения необходимого программного обеспечения. Смотрите здесь для деталей.источник
ffprobe "$file" 2>&1 |sed -rn 's/.*Audio: (...), .*/\1/p'
; сделано Исправляет это.This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.
ffmpeg
илиffprobe
недоступны для Ubuntu 14.04 или новее.ffmpeg
вернулся в Ubuntu в 15.04 , и, похоже, это Либав,avconv
иavprobe
был удален в 15.10 .Как заявил Николас Рауль, это нужно обновить. Вот та же строка, что и roadmr, но вместо этого используется avconv:
for vid in *.mp4; do avconv -i "$vid" "${vid%.mp4}.mp3"; done
источник