Извлечение mp3 с помощью avconv или ffmpeg больше не работает должным образом

Извлечение mp3 с помощью avconv или ffmpeg больше не работает должным образом

Перед обновлением до последней версии Ubuntu я использовал следующую команду для извлечения mp3 из avi-файла:

$ for x in *.avi; do ffmpeg -vol 100 -ab 160k -ar 44100 -i "$x" "`basename "$x" .avi`.mp3"; done

Это сработало. Но с Ubuntu 12.04 я получаюОпция sample_rate не найдена.когда я пытаюсь выполнить эту команду. Если я пропущу-ар 44100(или -sample_rate 44100) он извлекает mp3, но в большинстве случаев длина извлеченного mp3 больше не влезает. Это означает, что у них длина 43 мин или что-то в этом роде, хотя у avi длина всего 5 мин.

Та же проблема и с ffmpeg и с avconv. Есть идеи, как решить эти проблемы?

решение1

Попробуйте вместо этого следующее:

ffmpeg -i "$x" -vol 100 -ab 160k -ar 44100 "`basename "$x" .avi`.mp3"

Раньше параметры находились перед входным файлом, но, похоже, вы хотите задать их для выходного файла.

решение2

Пробовали ли вы это с другими avi-файлами? Звуковая дорожка файла может быть длиннее видеодорожки (просто предположение).

Вы пробовали опцию -t?

   -t duration
       Restrict the transcoded/captured video sequence to the duration
       specified in seconds.  "hh:mm:ss[.xxx]" syntax is also supported.

Вы можете попробовать установить фильтр аудио битового потока в ffmpeg. Я никогда не пробовал, но фильтр "remove_extra" звучит многообещающе ;)

   -absf bitstream_filter
       Bitstream filters available are "dump_extra", "remove_extra",
       "noise", "mp3comp", "mp3decomp".

Рассматривали ли вы возможность использования команды вроде ExifTool для просмотра информации о файле и соответствующей настройки параметров (возможно, даже анализа вывода и автоматизации этого процесса в вашем скрипте)?

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

Если вы разберетесь, пожалуйста, опубликуйте то, что вы сделали, потому что я не удовлетворен очевидными методами обработки тысяч видеофайлов, которые мне нужно демультиплексировать. Я сделал скрипт, похожий на ваш, однако я хочу получить максимально возможное качество аудиофайлов, не тратя при этом место. Мои параметры транскодирования, конечно, будут динамическими, поэтому мне нужно что-то немного более сложное, чем однострочник.

решение3

ffmpeg -version сообщит вам, какие опции сборки были включены во время компиляции ffmpeg для Ubuntu 12.04. Возможно, у вас отсутствует библиотека или опция не была включена во время сборки, в результате чего вам придется перекомпилировать с включенными отключенными опциями. Частота дискретизации по умолчанию для ffmpeg составляет 44100 с битрейтом 64k.

решение4

Установите ppa ffmpeg с ppa:jon-severinsson/ffmpeg, и это исправит проблему.

Связанный контент