Opened 19 years ago

Closed 13 years ago

#367 closed enhancement (fixed)

[REQUEST] NSC stream decoder/parser

Reported by: gamester17@… Owned by: reimar
Priority: normal Component: streaming
Version: unspecified Severity: minor
Keywords: Cc:
Blocked By: Blocking:
Reproduced by developer: no Analyzed by developer: no

Description

Note! This is not a bug report but instead just a feature suggestion/request:

Microsoft Windows Media Player's NSC (Windows Media Station) format (Windows
Media Technology Server) support would be very nice in MPlayer, to be ample to
play NSC broadcast or multicast streams. Now that Jon Lech Johansen
(a.k.a. "DVD Jon") have reversed-engineered Microsoft's (proprietary algorithm)
encryption coding for Windows Media Player this should now hopefully be
possible to achive. http://nanocrew.net/?p=128

The NSC file (is similar to a ASX file as it) contains information about the
stream, such as the IP-address and port of the stream server plus the
name/title and stream/codec format of the media-file it point to. Normally when
the file is opened in Media Player, the file is decoded and then connected to
the stream server specified. NSC (Windows Media Station) connections is also
known as "Multicast Windows Media Streaming (WMS) sessions" though broadcast
can be used as well (and broadcast might also suit most network enviroments
better). As I see it the only big difference between .NSC and .ASX metafiles is
that .NSC is encrypted and .ASX is not.

Looks like a VideoLan-client developer is working on it for VLC:
http://sidequest.org/weblog/archives/2005/08/multicast_from.html

More info about Windows Media Station (.nsc) files can be found on MSDN:
http://msdn.microsoft.com/library/en-us/wmp6sdk/htm/stations.asp

PS! I'm not a programmer myself so hope someone else who is will be intersting
in developing a patch for this and submit it to MPlayer.

Change History (9)

comment:1 by gamester17@…, 19 years ago

http://nanocrew.net/software/nscdec.c

Download: nscdec.c
MD5: 7c81ca49bc68c2b8671d00f0cdf960e3)

Example usage:
$ nscdec

comment:2 by gamester17@…, 19 years ago

example meta file looks like this:

[Address]
Time To Live=0x00000002
URL=023m000000001WQ01q07G0S00w02y 0Bm1Z06y0P01b06C0Sm0k06q0QG1Z0780Rm1p06y0PW
1q02u 0Om1l06q0Bm1f07C0OG1m06a0Bm1j0700TG1m06S0SW1X06G0P G0k06G0R01i0000
Player Version=020m000000000MD00k0300BW0n02u0Cm0u03K0C000 00
NSC Format Version=029G0000000008Cm0k0300000
Channel Version=0x00000083
Name=026G000000000UKW1b06m0QG1 X06C0OG1p07G0KW1X06G0QG1l0000
IP Address=02EG000000000KCW0p03C0BW0p02u0Cm0k0340000
IP Port=0x00000457
Delivery Mode=0x00000002

nscdec translates it to this:

[Address]
Time To Live=64
URL= /media/files/Cisco.asx
Name= Demonstration Content
IP Address=169.254.10.1
IP Port=22593

comment:3 by reimar, 19 years ago

NSC is _not_ encrypted! The fact that somebody at Cisco is too stupid to
recognized a modified base64 encoding does not change that fact.
A decoder for nsc is available since quite some time, see the thread starting at

http://mplayerhq.hu/pipermail/mplayer-dev-eng/2005-January/032748.html

Though I sure wouldn't mind if somebody extended our playlist parser to support
that (although my personal opinion is that most playlist parsing should be done
by external programs).

comment:4 by reimar, 19 years ago

Can you provide (non-multicast) samples? I implemented a playlist parser but
have no samples to test it.

comment:5 by gamester17@…, 19 years ago

comment:7 by gamester17@…, 19 years ago

Non-working (and not tested) samples provided by Diego Biurrun:
http://www.igt.ethz.ch/streams/sample/ASFStation.nsc
http://supcnt07.lboro.ac.uk:20000/LCR.nsc
http://www.europeonline.net/datafiles/stream/CHANNEL18.nsc
http://219.144.186.194/Station1.nsc

Got no clue how to tell if are multicast, unicast or broadcast.

comment:8 by compn, 13 years ago

Owner: changed from r_togni@… to reimar

comment:9 by reimar, 13 years ago

Resolution: fixed
Status: newclosed

Microsoft even has proper documentation about this now: http://msdn.microsoft.com/en-us/library/cc236240%28PROT.10%29.aspx
Anyway, since I already had the code I committed the playlist parser, however I haven't been able to find any available server so no idea if it is useful for anything.

Note: See TracTickets for help on using tickets.