Feature #1250
closedStreams encoding
100%
Description
Please add an option to set the subject.
Files
Updated by Mellon about 11 years ago
- File gettags2.py gettags2.py added
В общем, как показал срипт прикрепленный к этому псту, shoutcast отдает нормальную строку с cp1251:
% /tmp/gettags2.py | enca MS-Windows code page 1251 LF line terminators
Которая нормально декодится, в том числе с автодетектом:
% /tmp/gettags2.py | enca -x utf8 Syntheticsax feat. Крошка Bi-Bi (Sofamusic) & Art Night - Босиком (Radio Edit) % /tmp/gettags2.py | rcc-recode Syntheticsax feat. Крошка Bi-Bi (Sofamusic) & Art Night - Босиком (Radio Edit)
Таким образом проблема локализуется непосредственно на связку гстримера и личкрафтов.
Updated by 0xd34df00d about 11 years ago
- Status changed from New to Third-party bug
- % Done changed from 0 to 100
GStreamer returns crap.
Updated by Mellon about 11 years ago
Благодаря подсказке из #1272 нашел комбинацию.
Вспомнил, что по стандарту в ID3v1 все строки должны храниться в ISO 8859-1, и где-то встречал упоминание, что гстример теги потока именно так и воспринимает.
В итоге чтобы получить исходную строку надо теги полученные от гстримера вернуть в первоначальный вид:
<system charset> → cp1252
И затем, уже можно пускать через rcc, или iconv напрямую
Далее идут пруфы.
% gst-launch-0.10 -t playbin2 uri=http://shoutcast.aplus.fm:9000/aplus_russian_128 > /tmp/in % cat /tmp/in | iconv -f utf-8 -t cp1252 | iconv -f cp1251 -t utf-8 > /tmp/in2 % cat /tmp/in | iconv -f utf-8 -t cp1252 | rcc-recode >/tmp/in3 % diff -ub /tmp/in2 /tmp/in3 %
PS почему cp1252.
This encoding is a superset of ISO 8859-1
...
This is now standard behavior in the draft HTML 5 specification, which requires that documents advertised as ISO-8859-1 actually be parsed with the Windows-1252 encoding.
https://en.wikipedia.org/wiki/Windows-1252
Updated by 0xd34df00d about 11 years ago
- Status changed from Third-party bug to Reopened
Updated by 0xd34df00d about 11 years ago
- Target version set to 0.6.60
- Estimated time set to 3:00 h
Updated by 0xd34df00d about 11 years ago
- Status changed from Reopened to Resolved
Applied in changeset main|commit:2a8c7c2ec8e6c6309c471850065e17927a3ac08d.