Как удалить изображение аудиотеки ID3 (или метаданных) из mp3 с помощью ffmpeg

FFMPEG - отличный инструмент. Я знаю, что он может редактировать теги ID3 и даже удалять все теги подряд:

ffmpeg -i tagged.mp3 -map_metadata -1 untagged.mp3

Но даже после этого все еще есть обложка.

Я не знаю, как удалить его с помощью ffmpeg. Я знаю, что там есть другие мягкие возможности, которые могут выполнять эту работу - например eyed3 - но зачем это устанавливать, если ffmpeg может это сделать, в одной строке, при кодировании звука?

Ответ 1

Обложка/обложка обложки рассматривается как видеопоток по ffmpeg. Чтобы опустить это, вы можете использовать опции -vn или -map.

Снять метаданные и удалить обложку альбома (без повторного кодирования)

В этом примере звук stream copy (повторно мультиплексированный) вместо повторного кодирования. Это быстрее и не ухудшит качество:

ffmpeg -i tagged.mp3 -vn -codec:a copy -map_metadata -1 out.mp3

То же, что и выше, но используя -map вместо -vn

Или вы можете использовать параметр -map, чтобы явно выбирать потоки. Использование -map 0:a сообщает ffmpeg, чтобы выбрать только аудиопоток с входа 0 (первый вход и единственный вход в вашем случае):

ffmpeg -i tagged.mp3 -map 0:a -codec:a copy -map_metadata -1 out.mp3

Я предпочитаю -map, потому что он очень гибкий.

Ответ 2

Я пытался использовать коды, предоставленные LordNeckbeard, ни один из них не работал для моего дела. Но это работало:

ffmpeg -i tagged.mp3 -acodec copy -map 0 -map_metadata 0:s:0 notags.mp3

Теперь отображается только один тег: "TSSE" (означает Encoder). Кроме того, очень рекомендую эту статью, если вы хотите манипулировать тегами ID3 с помощью ffmpeg:

Как создавать/записывать теги ID3 с помощью ffmpeg

Ответ 3

Я пробую что-то вроде:

ffmpeg -i file.mp3 -ab 128k -ac 2 -ar 44100 -map 0:a -map_metadata -1 -sn -vn -y output.mp3

и всегда должны отображаться на выходе.