Автор Тема: Корректное отображение кириллицы (cp1251) в мультимедиа программах.  (Прочитано 67592 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Пользователь.

  • Местный
  • *****
  • Автор темы
  • Сообщений: 4613
Настройка отображения русских названий в мультимедиа программах.



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

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




« Последнее редактирование: Март 27, 2019, 23:51:07 от Пользователь. »

Оффлайн Пользователь.

  • Местный
  • *****
  • Автор темы
  • Сообщений: 4613
Со временем все меняется, так что надо проверять будут ли работать эти методы в новых версиях систем.

Пользователь решил продолжить мысль: Октябрь 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')

« Последнее редактирование: Октябрь 04, 2011, 14:47:31 от Пользователь. »

Оффлайн ludoed

  • Местный
  • *****
  • Сообщений: 860
  • ludoed1970@jabber.ru
Полезная тема, это можно бы и в HowTo добавить
а кстати, на vlc такого рецептика нет? Я, собственно, музыку слушаю редко, и спец плеера для нее не держу, а vlc универсален
все юниксы очень дружелюбны.. они просто очень разборчивы в друзьях ;)

Настоящее труЪ: самописное ядро, выращенные на кухне кристаллы и программирование перемычками :)

Оффлайн Пользователь.

  • Местный
  • *****
  • Автор темы
  • Сообщений: 4613
Asunder - программа для извлечения аудио файлов из Audio CD.

Решение:

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

Оффлайн Пользователь.

  • Местный
  • *****
  • Автор темы
  • Сообщений: 4613
Полезная тема, это можно бы и в HowTo добавить
а кстати, на vlc такого рецептика нет? Я, собственно, музыку слушаю редко, и спец плеера для нее не держу, а vlc универсален

Для VLC и Totem можно настроить как для Rhythmbox   :D
Я не пробовал, но теоретически должно сработать.
« Последнее редактирование: Май 20, 2012, 22:58:47 от Пользователь. »

Оффлайн ludoed

  • Местный
  • *****
  • Сообщений: 860
  • ludoed1970@jabber.ru
Полезная тема, это можно бы и в HowTo добавить
а кстати, на vlc такого рецептика нет? Я, собственно, музыку слушаю редко, и спец плеера для нее не держу, а vlc универсален

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

Попробовал для VLC как для Rhythmbox - не сработало, один фиг крякозябры
все юниксы очень дружелюбны.. они просто очень разборчивы в друзьях ;)

Настоящее труЪ: самописное ядро, выращенные на кухне кристаллы и программирование перемычками :)

Оффлайн Пользователь.

  • Местный
  • *****
  • Автор темы
  • Сообщений: 4613
Хорошо, что проверил, а то у меня все руки не доходили...


Оффлайн ludoed

  • Местный
  • *****
  • Сообщений: 860
  • ludoed1970@jabber.ru
Хорошо было бы, если б еще и помогло  :( а так...  ;)
все юниксы очень дружелюбны.. они просто очень разборчивы в друзьях ;)

Настоящее труЪ: самописное ядро, выращенные на кухне кристаллы и программирование перемычками :)

Оффлайн l_l_lblTHuK

  • Постоялец
  • ***
  • Сообщений: 144
Можно поставить виндовый Mp3tag, в нём в настройках выбрать сохранение в utf-8, потом ткнуть на папку, где музыка лежит, он просканит все каталоги. После этого выделить всё и нажать "сохранить". Всё - теги теперь в utf-8.
Есть скрипт, который делает то же самое.
Либо можно попробовать поставить puddletag - во многом она похожа на Mp3tag.
И нафек не нужны эти костыли с отображением.

Оффлайн ludoed

  • Местный
  • *****
  • Сообщений: 860
  • ludoed1970@jabber.ru
не-а, все эти скрипты и программы - как раз и есть костыль. Если музыки много, и большей частью она записана на CD / DVD дисках, перекодировка тегов не поможет

Вон, у приятеля - 150 Гб металла и хард-рока на болванках записано, а я ему перекодировать предложу?  ;D Я даже знаю, в каком направлении он меня пошлёт  ;D

Проще уж плеер с нормальным отображением тегов подобрать
все юниксы очень дружелюбны.. они просто очень разборчивы в друзьях ;)

Настоящее труЪ: самописное ядро, выращенные на кухне кристаллы и программирование перемычками :)

Оффлайн l_l_lblTHuK

  • Постоялец
  • ***
  • Сообщений: 144
Просто у меня на харде вся музяка хранится, для кого-то это будет актуальный совет :)
А в том случае да, проще плеер научить.

150 гигов на болванках О_о

Пользователь решил продолжить мысль: Июнь 07, 2012, 23:28:18
Хотя чего это я, у самого коллекция фильмов лежит на почти 200 двд ;D
Но это было в далёкие времена, когда инет был медленный, а винты малообъёмные...

Оффлайн Пользователь.

  • Местный
  • *****
  • Автор темы
  • Сообщений: 4613
Для VLC подошел метод с libtag1-rusxmms  ;D
В плейлисте проверял, в медиатеке нет.

Остался Totem, ему libtag1-rusxmms не помог, значит надо попробовать инструкцию как для Rhythmbox.

Оффлайн Пользователь.

  • Местный
  • *****
  • Автор темы
  • Сообщений: 4613
Проверил, для Totem подходит инструкция как для Rhythmbox.
В плеере Totem, после добавления файлов в плейлист отображаются названия файлов, при воспроизведении файла происходит чтение тегов и название файла заменяется на информацию из тегов.

Оффлайн Владимир Юрганов

  • Активист
  • ****
  • Сообщений: 436
эх. если бы только в кирилице дело было... а то значительная часть музыки в latina-1
известная проблема при скачке сусликом

Оффлайн Пользователь.

  • Местный
  • *****
  • Автор темы
  • Сообщений: 4613
В Ubuntu 14.04 убрали из репозиториев libtag1-rusxmms, так что в следующей LTS снова будут кракозябры.

Надо искать выход из ситуации.
« Последнее редактирование: Ноябрь 22, 2013, 15:32:24 от Пользователь. »

Оффлайн ludoed

  • Местный
  • *****
  • Сообщений: 860
  • ludoed1970@jabber.ru
может, кто-нибудь включит его в ppa?
все юниксы очень дружелюбны.. они просто очень разборчивы в друзьях ;)

Настоящее труЪ: самописное ядро, выращенные на кухне кристаллы и программирование перемычками :)

Оффлайн Пользователь.

  • Местный
  • *****
  • Автор темы
  • Сообщений: 4613
Можно deb пакет из репозиториев предыдущего релиза скачать  ;D

Оффлайн iks

  • Новичок
  • **
  • Сообщений: 97
  • Rusdeb 1.02
    • RusDeb
В Ubuntu 14.04 убрали из репозиториев libtag1-rusxmms, так что в следующей LTS снова будут кракозябры.

Надо искать выход из ситуации.
Debian  ;)
Я так обленился на Linux, что уже лень пользоваться другой ОСью

Всё может быть, и все быть может,
И лишь того не может быть,
Чего, быть может, быть не может -
Но и такое может быть!

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3463
В Ubuntu 14.04 убрали из репозиториев libtag1-rusxmms, так что в следующей LTS снова будут кракозябры.
Надо искать выход из ситуации.

   Ни в одной из моих сборок этот пакет не установлен.

Оффлайн Пользователь.

  • Местный
  • *****
  • Автор темы
  • Сообщений: 4613
Debian  ;)
На форуме дебиана жалуются на такую же проблему  ;D

   Ни в одной из моих сборок этот пакет не установлен.

Да, в системах Runtu установлены Deadbeef или Audacious, они корректно отображают кириллицу.
Но если пользователи захотят установить популярный нынче Clementine, то им понадобится libtag1-rusxmms, для корректного отображения кириллицы.


Оффлайн ludoed

  • Местный
  • *****
  • Сообщений: 860
  • ludoed1970@jabber.ru
Этот пакет и для VLC нужен, я, к примеру, музыку тоже через VLC слушаю
все юниксы очень дружелюбны.. они просто очень разборчивы в друзьях ;)

Настоящее труЪ: самописное ядро, выращенные на кухне кристаллы и программирование перемычками :)

Оффлайн ceH9l

  • Новичок
  • **
  • Сообщений: 25
Подскажите пожалуйста, как сделать корректное отображение кириллицы в Audacious?
Напротив пункта "Если не удалось определить, использовать кодировку" вставил  UTF-8,WINDOWS-1251.
Не помогло, кракозябры остались.
Ещё написано "И в настройках интерфейса плеера убрать галку напротив пункта "Использовать растровые шрифты"", однако я так и не нашёл эти настройки интерфейса и этот пункт, может подскажет кто как до него добраться? Или может есть какой ещё способ сделать кириллицу в этом плеере? (Правда некоторые песни отбражаются нормально) 

Оффлайн gvitaly

  • Местный
  • *****
  • Сообщений: 505
Подскажите пожалуйста, как сделать корректное отображение кириллицы в Audacious?
Напротив пункта "Если не удалось определить, использовать кодировку" вставил  UTF-8,WINDOWS-1251.
Не помогло, кракозябры остались.
Очистите список воспроизведения от файлов и снова их добавьте.
Ещё написано "И в настройках интерфейса плеера убрать галку напротив пункта "Использовать растровые шрифты"", однако я так и не нашёл эти настройки интерфейса и этот пункт, может подскажет кто как до него добраться?
Он только при использовании интерфейса классического Winamp.



Оффлайн ceH9l

  • Новичок
  • **
  • Сообщений: 25
Да, заново добавил файлы в плейлист, стало отображаться корректно.
Спасибо!

Оффлайн artec

  • Новичок
  • **
  • Сообщений: 33
Ребят, а кто-нибудь пробовал для banshee провернуть?..делал по инструкции  - не срабатывает для версии 2.6.2

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3463
делал по инструкции  - не срабатывает для версии 2.6.2

    Инструкция из этой темы? Приведите вывод выполнения в терминале команды
cat ~/.profile

Оффлайн artec

  • Новичок
  • **
  • Сообщений: 33
Да, инструкция из темы, для некоторых файлов не определяется кодировка:


Привожу конфиг:

# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

export GST_ID3_TAG_ENCODING="windows-1251"


Оффлайн Пользователь.

  • Местный
  • *****
  • Автор темы
  • Сообщений: 4613
Оставь ~/.profile таким же.

0. Закрыть Banshee
1. В файлы /var/lib/locales/supported.d/local и /var/lib/locales/supported.d/ru добавить строчку ru_RU.CP1251 CP1251
2. Выпонить в терминале:  sudo locale-gen
3. Удалить фонотеку Banshee ~/.config/banshee-1

И напиши что получилось.

Оффлайн artec

  • Новичок
  • **
  • Сообщений: 33
Пользователь.
от души всё получилось. Откровенно говоря эти файлы отражались крякамизабрами на любых плеерах с любыми настройками (что я только не перепробовал, кроме как менять теги, специально сохранял, авось будет решение). И вот, решение выше. Благодарствую очень!

Оффлайн Пользователь.

  • Местный
  • *****
  • Автор темы
  • Сообщений: 4613
Надо доработать инструкцию, видимо у меня кодировка уже была добавлена в систему, когда проверял...

Оффлайн artec

  • Новичок
  • **
  • Сообщений: 33
Надо доработать инструкцию...
Да, доработайте пожалуйста, будет приятно сразу получить полное руководство на блюдечке)...сейчас проверил в audacious - тоже норма).
« Последнее редактирование: Август 16, 2015, 00:27:44 от artec »

Оффлайн Пользователь.

  • Местный
  • *****
  • Автор темы
  • Сообщений: 4613
Доработал.
Написал подробнее, чтобы в будущем пользователи разобрались и сами смогли писать подобные инструкции.

Оффлайн artec

  • Новичок
  • **
  • Сообщений: 33
Доработал.
Написал подробнее, чтобы в будущем пользователи разобрались и сами смогли писать подобные инструкции.
Спасибо.

Оффлайн Near

  • Прохожий
  • *
  • Сообщений: 7
Уважаемые, подскажите ещё как поправить кодировку в mixxx. В плеерах отображается нормально, но как загрузишь в mixx - кракозябры.

Оффлайн HsH

  • Administrator
  • *****
  • Сообщений: 3463

    Near, в какой кодировке теги ваших композиций? Ни одна из рекомендаций в теме по данной проблеме вам не помогла?

Оффлайн Near

  • Прохожий
  • *
  • Сообщений: 7
windows-1251.

Единственное решение - перегнать теги в UTF-8 на Windows.
Обидно, что в других плеерах все отображается отлично, а тут ну ни как