Добавить обложку альбома в файл mp3 / ogg из командной строки в пакетном режиме?

Я ищу программное обеспечение в Linux, которое добавит альбом-искусство / обложку для каждого из выбранных файлов в пакетном режиме. Обложка альбома – jpg / png, хранящаяся на моем компьютере. Это будет потрясающе, если он сможет импортировать из Интернета.

В настоящее время я пробовал как Rhythmbox, так и Banshee. Я также пробовал lame и easytag , но кажется, что они не поддерживают пакетный режим. lame не добавляет свойства, а перезаписывает. (Я знаю, что lame – единственная командная строка s / wi, которая использовалась до сих пор).

Итак, в основном я ищу:

 <some magic s/w> --picture=<my chosen picture> Music/Artist/*.mp3 

Это добавит изображение в метаданные файла, навсегда.

Можете ли вы предложить мне такое программное обеспечение?

  • Обновлен unrecognized option '--localpaths ='
  • Удерживать и отпускать задания печати CUPS из командной строки
  • Какой тип данных содержит входной файл?
  • Почему я не могу подключиться к параллели?
  • Доступ к последнему файлу (в алфавитном порядке) в каталоге
  • Как скопировать файл журнала по времени?
  • Извлечь информацию о шаге из аудиофайла
  • Как я могу выйти из графической среды из командной строки?
  • 5 Solutions collect form web for “Добавить обложку альбома в файл mp3 / ogg из командной строки в пакетном режиме?”

    ламе

    Используя lame вы можете сделать это, используя небольшой скрипт:

     $ lame --ti /path/to/file.jpg audio.mp3 

    Если файлы называются примерно так, вы можете сделать сценарий оболочки, чтобы сделать то, что вы хотите:

     for i in file1.mp3 file2.mp3 file3.mp3; do albart=$(echo $i | sed 's/.mp3/.jpg/') lame --ti /path/to/$albart $i done 

    Вы можете сделать выше немного более компактным и исключить необходимость sed , используя bash чтобы сделать это, удалив соответствующий суффикс:

     ... albart="${i%.mp3}.jpg" ... 

    Пикард / MusicBrainz

    Если вы хотите сделать это в больших масштабах, я бы предложил использовать Picard, который является интерфейсом для использования базы данных MusicBrainz. В Picard есть плагин под названием «Cover Art Downloader», который может сделать это для партий вашей коллекции.

    • MusicBrainz
    • Picard
    • Плагины Picard

    Однако указанное выше не является командной строкой.

    свекла

    Другой вариант – использовать beets . Это можно запустить из командной строки и использовать базу данных MusicBrainz для поиска обложек альбомов.

    Вы можете либо использовать обложку альбома, используя FetchArt Plugin, либо встроить его с помощью плагина EmbedArt .

    Другие варианты?

    Также взгляните на это ранее заданное U & L Q & A под названием « Какой инструмент для тегов mp3 для Linux? , В этом потоке есть несколько альтернативных инструментов.

    Одним из решений было бы использовать ffmpeg:

     ffmpeg -i input.mp3 -i cover.jpg -map_metadata 0 -map 0 -map 1 output.mp3 

    Вы можете поместить это в цикл for, чтобы делать каждый MP3 в каталоге:

     for f in ./*.mp3; do ffmpeg -i "$f" -i cover.jpg -map_metadata 0 -map 0 -map 1 out-"${f#./}"; done 

    Это создаст отдельный выходной файл (так что если у вас есть файл с именем foo.mp3 , вы получите как foo.mp3 и out-foo.mp3 ); это связано с тем, что ffmpeg не может писать поверх своего ввода. Вы можете исправить это с помощью чего-то вроде:

     for f in ./*.mp3; do \ ffmpeg -i "$f" -i cover.jpg -map_metadata 0 -map 0 -map 1 out-"${f#./}" \ && mv out-"${f#./}" "$f"; done 

    Использование ffmpeg для этой проблемы немного напоминает использование крылатой ракеты для взлома гайки. Более специализированные инструменты для обработки метаданных, безусловно, смогут сделать это в более чистой и более короткой команде.

    Для этого вы можете использовать драгоценный камень FancyAudio . Он может добавлять обложки альбомов в mp3-файлы. Документация доступна здесь .

    функции

    1. добавить обложку альбома в один mp3-файл
    2. добавьте обложку альбома в несколько mp3-файлов.

    Ниже экрана показан вывод fancy_audio при запуске в папке, содержащей изображение и несколько mp3-файлов

    введите описание изображения здесь

    Ниже экрана показан вывод fancy_audio при запуске в папке, содержащей файлы mp3 и изображений

    На этом изображении показан вывод fancy_audio при запуске в папке, содержащей файлы mp3 и изображений

    Для MP3:

     eyeD3 --add-image="cover.jpg":FRONT_COVER "file.mp3" 

    Для FLAC:

     metaflac --import-picture-from="cover.jpg" "file.flac" 

    OGG / Vorbis представляется более сложным .

    OP утверждает, что он предпочел бы, если обложка будет загружена из Интернета, и я просто написал довольно хороший сценарий для этого, используя eye3D и sacad , оба устанавливаемые из pip. eye3D очень полезен для этой цели, поскольку он, похоже, не перекодирует звук, а с помощью флага --to-v2.4 обрабатываются любые mp3-файлы, независимо от типа тега id3. Сценарий должен быть запущен из каталога, содержащего mp3-файлы. Его можно запускать без аргументов, угадывая имя исполнителя и альбома из тегов id3 или с именами вручную в качестве аргументов, например, embedart "pink floyd" "dark side of the moon" . Это написано для оболочки рыбы, но должно быть легко переносимым для bash, если вы измените все команды set на настройки bash.

     function embedart if echo $argv | grep -q -e '-h' echo 'embedart "[Artist]" "[Album]"' return end if test $argv[1] set artist $argv[1] set album $argv[2] else set artist (eyed3 (ls *mp3 | head -1) | ggrep -oP "artist.*: \K.*" | head -1) if not test $artist echo "No artist found!" return end set album (eyed3 (ls *mp3 | head -1) | ggrep -oP "album.*: \K.*" | head -1) if not test $album echo "No album found!" return end end sacad $artist $album 350 cover.jpg -v warning 2> /dev/null > /dev/null eyeD3 --to-v2.4 --add-image "cover.jpg:FRONT_COVER" *mp3 -Q 2> /dev/null > /dev/null rm cover.jpg echo "Done!" end 
    Interesting Posts

    Как изменить регистр (верхний и нижний регистр) строк в моей переменной?

    Строка состояния i3: низкая батарея не отображается красным цветом

    Экран GNU: как использовать: aclumask для установки разрешений для неизвестных пользователей?

    Отключить горизонтальные кнопки колесика прокрутки (назад / вперед)

    Хороший побег для ssh

    Добавить фиксированное значение PID в процесс

    Не удается получить доступ к виртуальным терминалам после ручного запуска X-сервера

    Отслеживание выполнения команд после sudo другому пользователю

    Переключение пользователей без символа –

    TP-LINK Archer T2UH wifi fastroaming на Linux медленный или иногда не может подключаться к AP

    Неизвестная кодировка: POSIX

    Как поставить отметку времени с помощью: wget –output-file =

    Проблема мониторинга энергопотребления

    Загрузите сразу несколько URL-адресов

    Jar on Raspberry Pi не отвечает после долгого времени

    Linux и Unix - лучшая ОС в мире.