LINUX.ORG.RU

[НЕНАВИСТЬ] mp3 и кодировки

 


0

0

Подскажите, пожалуйста, утилиту, с помощью которой можно определить кодировку mp3-idv2 тегов. Как конвертировать - знаю, но не знаю, какие кодировки в файле использованы, к сожалению.

anonymous

Ответ на: комментарий от wfrr

Выбор там небольшой, однако перебрав доступный список из
iconv --list |grep JP
CSISO2022JP//
CSISO2022JP2//
EBCDIC-JP-E//
EBCDIC-JP-KANA//
EUC-JP-MS//
EUC-JP//
EUCJP-MS//
EUCJP-OPEN//
EUCJP-WIN//
EUCJP//
ISO-2022-JP-2//
ISO-2022-JP-3//
ISO-2022-JP//
ISO646-JP-OCR-B//
ISO646-JP//
ISO2022JP//
ISO2022JP2//
JP-OCR-B//
JP//
Я получаю на выходе:
mp3unicode -s (здесь любая кодировка из списка) -2 unicode * -p
01.HAPPY.mp3...done
Error: Error during encoding.
И так с достаточно большой частью коллекции.

anonymous
()
Ответ на: комментарий от wfrr

Ну, треки отнюдь не из россии :)
Не думаю, что стал бы проверять *jp* кодировки на русской музыке.
Треки из азии, и фиг знает точно откуда, но на 99% уверен что японские.

anonymous
()
Ответ на: комментарий от anonymous

вернее, 100% японские, т.к. первый трек перекодировался нормально - а имя артиста иероглифично.

anonymous
()
Ответ на: комментарий от anonymous

фсе, это оказывается просто кракозябры _уже_ загнанные в UTF-8 и восстановлению не подлежащие. По крайней мере, Enca на извлеченный тэг ругнулась именно так:
enca 1.txt -L none
Universal transformation format 8 bits; UTF-8

anonymous
()

> Подскажите, пожалуйста, утилиту, с помощью которой можно определить кодировку mp3-idv2 тегов.

Кодировка в id3v2 (v2, не v1) явно указывается. Другое дело, если указана одна, а реально другая.

Как определить что указано: в файле найти тэг (в начале, редко в конце файла, начинается с байт "ID3"), найти недалеко дальше "TIT2" (название) или "TPE1"/"TPE2" (исполнитель), пропустить 6 байт (4 байта длина, 2 байта флагов), посмотреть на седьмой. 00 = latin1, 01 = UTF16+BOM, 02 = UTF16, 03 = UTF8. После идёт собственно строка, на неё тоже можно посмотреть и подумать что там реально. ISO 2022, например, легко узнаётся на глаз.

> Для треков из россии основная ожидаетмая кодировка cp1251

(в v2 недопустима вообще)

> Я получаю на выходе: (...) Error: Error during encoding. > фсе, это оказывается просто кракозябры _уже_ загнанные в UTF-8 и восстановлению не подлежащие.

Если использовался mp3unicode как написано выше, то с высокой вероятностью именно он превратил текст в кракозябры. См. стандарт id3v2.

Или содержимое id3, hex, в студию.

anonymous
()
Ответ на: комментарий от anonymous

Есть утилитка - EasyTag, так ей по барабану какая кодировка, в гугле найдешь все необходимые описания как твои кодировки конвертануть в UTF-8

RoMih
()

for i in *.mp3; do
	enc=$(mid3v2 -l $i | enca -e)
	mid3iconv -e $enc --remove-v1 --debug  $i
done

Dselect ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.