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

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

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

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

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

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

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

  • Можно ли сохранить последовательность команд после отправки ctrl + c на промежуточном этапе?
  • Переключитесь на приложение, используя его PID
  • Как использовать столбец для разметки вкладок, а не пробелов?
  • Верните одно значение и сохраните его в переменной
  • Печать эпохи с использованием даты
  • Как я могу увидеть весь файл, а также дождаться добавления большего количества данных в этот файл?
  • Как переопределить rw-r-r-root / wheel для всех файлов в каталоге?
  • Интерфейс командной строки, подобный Cisco
  • 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

    Почему на ноутбуках на базе Linux есть слабый сигнал Wi-Fi по сравнению с ноутбуком на базе Windows?

    Передача аргументов для напоминаний о событиях на KOrganizer bash / yad

    Создание самораспаковывающихся исполняемых файлов Windows, которые могут автоматически запускать скрипт

    Как сделать мой экран двухэкранным растяжением с Debian Jessie и Radeon RX460?

    Как выделить всю строку журнала в цвете с помощью многопользовательского режима

    Сценарий Awk для извлечения части входного файла

    Проблема с vim при входе в систему как root

    Где продолжение строки bash после && и || документально?

    Пространства рядом с трубами

    Инструменты разгона в Linux

    Bash: Почему используется eval и shift в скрипте, который анализирует аргументы командной строки?

    Пользовательские временные файлы Yum (/ var / tmp / yum *) заполняются данными репо

    Открытый ключ Auth + Kerberos

    Монтирование процесса доступно только для чтения

    Как заменить пакеты udp на лету

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