Shoorick ([info]shoorick) wrote,
@ 2007-10-25 16:16:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Current mood: nerdy
Current music:Григорий Данской – Книга Песен. На верхней боковой – Грустные размышления медитативного характера о
Entry tags:free software, freebsd, mp3, ogg, perl, software, unicode, кодировка, программизм

Мартышкин труд
Видя бардак с кодировками ID3-тэгов и помня, что, по стандарту, там не может быть ни UTF-8, ни КОИ-8, нашёл радикальный, но вполне корректный путь: перегнать коллекцию из mp3 в ogg vorbis, где с тэгами нет такого бардака, ибо они всегда в UTF-8. Да и сжатие там получше. Да и формат этот открытый...

Поискал конвертер в портах при помощи make search и, не заметив его в толпе софта, стал писать свой: традиционно, на перле.

Метод — ленивый до безобразия: взять файл, прочитать свойства и тэги (MP3::Info), декодировать звук (mpg123), послав его кодировщику (oggenc), попутно передав тэги, переведённые из windows-1251. Итого — 99 строк, 2 кБ (вместе с развесистыми комментариями). Работает. И называется, чтоб долго не думать, mp32ogg.

А потом выясняется, что в портах уже есть mp32ogg. И делает он то же самое. И тем же самым путём.

Не знаю, может ли он кодировку тэгов менять (ещё не проверял), но это, в общем-то, и не важно, ибо в портах нашёлся mp3unicode.

ЗЫ Но вот железные MP3-плееры да музцентры с магнитолами нечасто ogg понимают...




(Post a new comment)


[info]graph
2007-10-25 11:07 am UTC (link)
Вопрос из зала: какие тэги, в какой кодировке, нужно делать эмпэтришкам, чтобы их понимали железяки типа автомобильного mp3-плеера?

(Reply to this) (Thread)

Ответ в зал
[info]shoorick
2007-10-25 11:26 am UTC (link)
Хрен его знает!

Видимо, зависит, от конкретной железяки. Не скажу за автомагнитолы, но, например, анюткин плеер, если в настройках выбрать русский интерфейс, считает, что тэги в windows-1251 (то есть, достаточно их прописать винампом, или фаровым плагином mp3util, или есть ещё вагон софта под виндовс, считающего, что тэги должны быть в windows-1251). А если интерфейс английский, то та же самая железяка считает, что тэги в ISO-8859-1/Western/Latin1.

(Reply to this) (Parent)(Thread)

Ещё данные
[info]shoorick
2009-06-18 02:40 pm UTC (link)
А мой iRiver T60 считает, что тэги в UTF-8.

(Reply to this) (Parent)


[info]zauberer
2007-10-25 06:30 pm UTC (link)
"Дураки думают одинаково и одновременно",-- говорил один мой однокурсник.

(Reply to this)


[info]nuclon
2007-12-02 07:31 am UTC (link)
Еще как там могут быть utf8. почитайте на досуге спецификацию ID3v2.4

http://id3.org/id3v2.4.0-structure
...
Frames that allow different types of text encoding contains a text
encoding description byte. Possible encodings:

$00 ISO-8859-1 [ISO-8859-1]. Terminated with $00.
$01 UTF-16 [UTF-16] encoded Unicode [UNICODE] with BOM. All
strings in the same frame SHALL have the same byteorder.
Terminated with $00 00.
$02 UTF-16BE [UTF-16] encoded Unicode [UNICODE] without BOM.
Terminated with $00 00.
$03 UTF-8 [UTF-8] encoded Unicode [UNICODE]. Terminated with $00.
...

А перегонять из одного формата сжатия с потерями в другой формат сжатия с потерями - глупо.

PS: иПод - читает прекрасно теги в utf8.

(Reply to this) (Thread)

Дык
[info]shoorick
2007-12-03 05:48 am UTC (link)
Понятно, что пережимать еже пожатое — неправильно.
Впрочем, я пока прекратил это занятие: правильно настроенный mpd понимает, что тэги в CP1251.

(Reply to this) (Parent)


[info]nuclon
2007-12-02 07:52 am UTC (link)
ps: так же иПод (и многие другие плееры) играют ogg, если поставить правильную прошивку :)

(Reply to this)


Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…