Показать сообщение отдельно
Старый 20.08.2012, 14:15   #1
Новичок
 
Пол:Мужской
Регистрация: 18.02.2011
Сообщений: 6
Репутация: 7
По умолчанию Кракозябры в mp3 тегах. Простое решение

После перехода на Linux почти у всех появляется проблема с кодировкой в mp3 тегах. При прослушивании mp3 — файлов в различных музыкальных плеерах под Linux mp3-теги отображаются кракозябрами. это происходит оттого, что большинство файлов записанно под Windows, где до сих пор основной кодировкой служит cp-1251. Современный стандарт кодировки для mp3-tags — utf-8, кодировка по умолчанию для русской локали в Linux.

Проблема как обычно не в плеерах, с ними все в порядке, а в самих mp3 файлах. Старый winamp (который был очень популярен раньше), не понимал id3v2 тегов, только id3v1. Но id3v1 по стандарту могут содержать только кодировку latin-1, а это только английские буквы. А наши софтописатели не долго думая, пихали туда русские теги в кодировке cp-1251, и «правильные» плееры их не отображали. Но уже 10 лет как существует id3v2, а в них информация хранится в юникоде, с русскими буквами проблем нет.


Используем программу mid3iconv входящу в пакет python-mutagen:
Ставим пакет python-mutagen:


Код:
apt-get install python-mutagen

Теперь с помощью этой программы удалим id3v1 теги, и создадим id3v2, перекодируя по пути cp1251 → utf8. Где example.mp3 — файл, который нужно переконверитровать.


Перекодируем теги id3v1 →id3v2 одиночного файла:



Код:
mid3iconv -e CP1251 -d example.mp3
А так каталога, где /home/user/music -каталог, где лежат ваши mp3-файлы:


Код:
find /home/user/music -iname "*.mp3" -print0 | xargs -0 mid3iconv -e CP1251 -d

И все.
vechnoe вне форума
 
Ответить с цитированием Вверх
Эти 4 пользователя(ей) сказали cпасибо за это полезное сообщение:
 
Время генерации страницы 0.08133 секунды с 9 запросами