Поддержка > Мультимедиа

Корректное отображение кириллицы (cp1251) в мультимедиа программах.

(1/8) > >>

Пользователь.:
Настройка отображения русских названий в мультимедиа программах.


Введение:
Кодировка - это таблица с изображениями букв, знаков и символов.
На жестком диске текст хранится в закодированном виде, а на экране отображается в виде изображений из этой таблицы. Поверх кодировки еще могут применяться темы оформления текста, то есть шрифты.

Раньше для каждого языка имелась своя кодировка, причем на 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, Totem

1. Закрыть плеер.
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.



Пользователь.:
Со временем все меняется, так что надо проверять будут ли работать эти методы в новых версиях систем.
Пользователь решил продолжить мысль: Октябрь 04, 2011, 14:47:31 Radio Tray

 
В файле /usr/share/pyshared/radiotray/StateMediator.py  найти строки
def notifySong(self, data):
newMetadata = str(data)

Вторую строку привести к такому виду
newMetadata = str(data).encode('latin-1').decode('cp1251').encode('utf8')

ludoed:
Полезная тема, это можно бы и в HowTo добавить
а кстати, на vlc такого рецептика нет? Я, собственно, музыку слушаю редко, и спец плеера для нее не держу, а vlc универсален

Пользователь.:
Asunder - программа для извлечения аудио файлов из Audio CD.

Решение:

Перейти на сайт freedb.org
Вверху в поле поиска набрать латинскими буквами исполнителя и нажать Ok
Найти свой диск в найденном
В браузере указать кодировку cp-1251 и кириллица станет правильно отображаться
Копируйте информацию с сайта и вставляйте в Asunder

Пользователь.:

--- Цитата: ludoed от Октябрь 04, 2011, 18:38:15 ---Полезная тема, это можно бы и в HowTo добавить
а кстати, на vlc такого рецептика нет? Я, собственно, музыку слушаю редко, и спец плеера для нее не держу, а vlc универсален

--- Конец цитаты ---

Для VLC и Totem можно настроить как для Rhythmbox   :D
Я не пробовал, но теоретически должно сработать.

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии