Feature #1272
closedАвтоконвертация кодировок в тегах
100%
Description
Актуально для проигрываемых из VK файлов. Теги в оных часто прописаны в CP-1251, что есть неправильно. В LMP такие файлы при проигрывании показываются кракозяблами.
Дабы не городить огород и не писать автоконвертер с нуля, предлагаю на первое время обрабатывать информацию о тегах через стандартный taglib (многие юзают оный от Rusxmms, а он сам умеет конвертить все как надо автоматом).
Вот пример такой обработки (пара строк по сути) - http://rusxmms.sourceforge.net/api/librcc-html/example1_8c.html
А тут - сам проект, если кто не знает - http://rusxmms.sourceforge.net/index.php?page=aboutr.php
Updated by Mellon about 11 years ago
jam, проверьте, пожалуйста, работает ли автоконвертирование через патченный таглиб при проигрыании такого плейлиста (с нелокалңными файлами), желательно проверить на личаз и на стороннем плеере типа амарока.
Прикрутить автоопределие/конвертирование через librcc не проблема, проблема в получении от гстримера нетронутых метаданных :(
Updated by Mellon about 11 years ago
Проверил сам
http://dump.bitcheese.net/images/iluwute/screenshot.png
На самой попсовой попсе всё показывает правильно.
Рекомендую автору использовать патченный taglib из приведенных им выше ресурсов.
Updated by jam about 11 years ago
Благодарю за ответ.
Вчера я таки тоже покопался в проблеме.
Те файлы с VK, что кракозяблами показываются в LMP, после скачивания и запуска локально отдают нормальные теги.
Оверлей rusxmms подключен, патченый taglib в системе установлен и работает, нормально отдает теги в любой кодировке.
НО! И вот тут вскрылось нечто интересное. Кодировка тегов этого именно файла (на других подобных тоже проверял) - православный utf-8!
Копаясь далее выяснил, что указанные на скриншоте кракозяблы возможно вернуть к человеческому виду вот такой операцией:
echo "кракозяблы" |iconv -f iso-8859-1 -t utf-8|iconf -f cp1251 -t utf-8
Т.е. напрашивается вывод, что гстример при передаче тегов (которые изначально в utf-8) зачем то их конвертирует в iso-8859-1 o_O
Впринципе я даже попатчил player.cpp из LMP на предмет обратной перекодировки, и вроде все работает. Но как оно будет вести себя на тегах, которые изначально в cp1251 пока не выяснял..
Updated by Mellon about 11 years ago
Насколько я помню, в ID3v1 по стандарту должно быть ISO 8859-1 И где-то есть обсуждение, что разрабы гстримера будут следовать этому стандарту. Потому, могу предложить проверить теги проблемных треков. может там они в ID3v1?
Updated by jam about 11 years ago
Обязательно проверю, как только до боевого компа доберусь (после работы).
Еще одно соображение - я так понял, на Вашем скриншоте только сформирован плейлист? Файлы на проигрывание не запущены?
Если да, то по русским наименованиям в плейлисте у меня вопросов нет (возможно я неулачныый скриншот запостил, т.к. до этого попробовал проиграть список). Беды начинаются после запуска на произведение таких файлов, т.е. когда в плейлисте, popup уведомлении, на вкладке "Свойства" и пр. местах названия заменяются проигрывателем на теги, переданные от gstreamer.
Updated by Mellon about 11 years ago
благодаря вашему пинку сложился ещё один пазл. пасяб
http://dev.leechcraft.org/issues/1250#note-3
Updated by jam about 11 years ago
Отлично.. Похоже проблема решена. Вечером проверю.
Спасибо за оперативность.
Updated by 0xd34df00d about 11 years ago
А что с mp3 + id3v2? Я не думаю, что есть техническая возможность различить, откуда пришел тег, внутри гстримера.
Updated by Mellon about 11 years ago
Jam, оказался прав. http://dump.bitcheese.net/images/izavugo/screenshot.png
Всё хуже.
Updated by 0xd34df00d about 11 years ago
Стоп, как вы играете из вконтакта? Мне вконтакт вообще теги не отдает.
Updated by 0xd34df00d about 11 years ago
- Status changed from New to Resolved
- % Done changed from 0 to 100
Applied in changeset main|commit:e167646fb1413c0a9238c666a46d444cc00e365e.
Updated by 0xd34df00d about 11 years ago
- Status changed from Resolved to Closed
- Target version set to 0.6.60
- Estimated time set to 15:00 h