Настройка отображения русских названий в мультимедиа программах.
Введение: Кодировка - это таблица с изображениями букв, знаков и символов.
На жестком диске текст хранится в закодированном виде, а на экране отображается в виде изображений из этой таблицы. Поверх кодировки еще могут применяться темы оформления текста, то есть шрифты.
Раньше для каждого языка имелась своя кодировка, причем на Unix и на Windows были разные кодировки для русского языка:
MS-DOS - cp866
Windows - сначала cp1251 позже UTF-8
Unix - сначала KOI8-R позже UTF-8
Существовали и другие версии русских кодировок (cp1252, iso8859-5, UTF-16), но их использовали реже.
UTF-8 вмещает в себя все языки, и нет больше необходимости использовать в каждой стране свою кодировку.
Кроме этого еще есть стандарт (правила) записи информации в mp3 файл.
В mp3 файлах раньше текст записывался в формате ID3v1, в этом формате и записывали текст в разных кодировках.
Позже стал использоваться формат ID3v2, в котором уже информация записывалась в UTF-8 (реже в UTF-16).
Сейчас у нас остались старые файлы с текстом в разных кодировках (cp1251, cp866, KOI8-R и огромное множество кодировок других стран), они не совместимы с UTF-8, поэтому мы видим неразборчивые знаки.
Есть несколько способов борьбы с этой проблемой:1. Использовать программы с поддержкой старых кодировок (автоматически или с ручной настройкой).
2. Сконвертировать текст в mp3 файлах в UTF-8.
3. Изменить для плеера системную кодировку (но не все плееры обращают внимание на системную кодировку), это крайний метод, использовался раньше, когда в плеерах еще не было выбора кодировок или не были изучены методы выбора кодировки, теперь это в прошлом.
================================================
Deadbeefподдерживает UTF8, CP1251 (русская), CP936 (китайская)
================================================
AudaciousПараметры → Список воспроизведения
Напротив пункта "Если не удалось определить, использовать кодировку" вставить: UTF-8,WINDOWS-1251
И в настройках интерфейса плеера убрать галку напротив пункта "Использовать растровые шрифты"
Это отключает использование шрифта из скина для отображения названия трека на панели плеера.
В шрифте из скина нет русских букв, поэтому русские названия не отображаются на панели плеера.
================================================
QmmpНастройки Qmmp → Модули → Модуль MPEG → Настройки
Сделать как на скриншоте
В настройках внешнего вида, на вкладке "Разное" убрать галку напротив пункта "Использовать растровые шрифты, если возможно"
Это отключает использование шрифта из скина для отображения названия трека на панели плеера.
В шрифте из скина нет русских букв, поэтому русские названия не отображаются на панели плеера.
================================================
Rhythmbox, Banshee, Totem1. Закрыть плеер.
2. Активировать в системе кодировку CP1251, для этого выполнить следующие действия:
В файлы /var/lib/locales/supported.d/local и /var/lib/locales/supported.d/ru добавить строчку
ru_RU.CP1251 CP1251
Выпонить в терминале:
sudo locale-gen
3. В мультимедийной подсистеме Gstreamer, указать настройку для использования кодировки CP1251
Открыть текстовый файл ~/.profile, в самом низу добавить строку, в нее вставить текст
export GST_ID3_TAG_ENCODING="windows-1251"
Ниже нее добавить строку, и оставить пустой.
4. Удалить фонотеку плеера
Rhythmbox хранит фонотеку в ~/.local/share/rhythmbox
Banshee хранит фонотеку в ~/.config/banshee-1
Totem не имеет фонотеки, для него не надо на этом этапе ничего делать
5. Перезапустить мультимедийную подсистему Gstreamer, для этого нужно на панели рабочего стола нажать кнопку главного меню, выбрать завершение работы и выход, затем снова зайти в систему.
6. Проверить отображение кодировок в плеере.
========================================
Amarok, Clementine, Guayadeque, VLC и другие плееры использующие TagLib от проекта KDE (пакеты libtag1c2a, libtag1-vanilla)Например Clementine:
1. Закрыть плеер
2. Установить пакет libtag1-rusxmms, он заменит libtag1-vanilla
3. Перейти в ~/.config и удалить папку Clementine (это мы очищаем библиотеку от уже загруженых туда крякозябр, заодним сбросятся настройки плеера)
В Ubuntu 14.04 нет libtag1-rusxmms.
========================================
Exaile и другие плееры использующие phyton-mutagen
Exaile написан на Python и использует модуль mutagen для обработки тегов, по-этому мы просто ручками допишем нужную нам кодировку. На самом деле данный способ поможет большинству плееров написанных на Python и использующих данный модуль питон.
Ищем пакет mutagen (у меня он лежит в /usr/lib/python2.7/dist-packages/mutagen/) и открываем в нем файл id3.py.
В классе EncodedTextSpec в список _encodings добавляем кортеж (’cp1251′, ’\x00′), должен получиться следующий вид:
...
class EncodedTextSpec(Spec):
# Okay, seriously. This is private and defined explicitly and
# completely by the ID3 specification. You can't just add
# encodings here however you want.
_encodings = ( ('cp1251', '\x00'), ('latin1', '\x00'), ('utf16', '\x00\x00'),
('utf_16_be', '\x00\x00'), ('utf8', '\x00') )
def read(self, frame, data):
...
Источник:
mishamx.ruПробовал для Exaile указать несколько кодировок, но он начинает путать кодировки, так что лучше добавлять не больше одной.
latin1 - это ISO-8859-1
===================================================
Конвертирование тегов с помощью EasyTag.1. Установить настройки как на скриншоте
2. Выделить каталог в котором лежат все подкаталоги с музыкой, подождать пока добавятся в программу.
3. Нажать кнопки "Выделить все" и "Сохранить файлы", через несколько минут все файлы сохранятся.
4. После редактирования тегов нужно в аудио плеерах очистить фонотеку и плейлисты, затем снова заполнить.
Примечание: для id3v1 указана кодировка Windows-1251, на случай если файлы будут использоваться в Windows XP, там файловый менеджер в режиме таблицы показывает исполнителя, при кодировке ISO-8859-1 он кажет знаки вопроса, а при Windows-1251 корректно отображает исполнителя. Другие программы программы давно уже используют id3v2.