Project

General

Profile

Feature #1250

Streams encoding

Added by DA about 7 years ago. Updated about 7 years ago.

Status:
Closed
Priority:
Low
Assignee:
Category:
Plugins: LMP
Target version:
Start date:
09/04/2013
Due date:
% Done:

100%

Estimated time:
3.00 h

Description

Please add an option to set the subject.


Files

gettags2.py (543 Bytes) gettags2.py Mellon, 09/06/2013 03:33 PM
in2 (1.92 KB) in2 Mellon, 09/20/2013 12:51 PM
in (1.92 KB) in Mellon, 09/20/2013 12:53 PM

Related issues

Related to Feature #1272: Автоконвертация кодировок в тегахClosed09/19/20130xd34df00d

Actions
#1

Updated by Mellon about 7 years ago

В общем, как показал срипт прикрепленный к этому псту, 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)

Таким образом проблема локализуется непосредственно на связку гстримера и личкрафтов.

#2

Updated by 0xd34df00d about 7 years ago

  • Status changed from New to Third-party bug
  • % Done changed from 0 to 100

GStreamer returns crap.

#3

Updated by Mellon about 7 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

#4

Updated by Mellon about 7 years ago

исходный

#5

Updated by 0xd34df00d about 7 years ago

  • Status changed from Third-party bug to Reopened
#6

Updated by 0xd34df00d about 7 years ago

  • Target version set to 0.6.60
  • Estimated time set to 3.00 h
#7

Updated by 0xd34df00d about 7 years ago

  • Status changed from Reopened to Resolved

Applied in changeset main|commit:2a8c7c2ec8e6c6309c471850065e17927a3ac08d.

#8

Updated by 0xd34df00d about 7 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF