Sustainability of Digital Formats: Planning for Library of Congress Collections

Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact
Format Description Categories >> Browse Alphabetical List

Nullsoft Streaming Video

>> Back
Table of Contents
Format Description Properties Explanation of format description terms

Identification and description Explanation of format description terms

Full name Nullsoft Streaming Video
Description

The Nullsoft Streaming Video (NSV) format is a media file and bitstream format (link via Internet Archive) designed to support streaming of video and audio over the Internet. A major feature of the format is that it was built to allow playback at any point within the stream. According to the specification, NSV supports nearly any combination of audio and video compression. In practice, NSV primarily utilizes (link via Internet Archive) MP3 for audio and VP3 for video. This format was tightly linked with the Winamp (link via Internet Archive) software, also owned by Nullsoft, a popular music player program mostly used on Windows operating systems.

NSV files have a maximum of two parts. The first part, the header, is optional. The second part is the NSV bitstream, which is required. NSV also supports auxiliary data chunks for sending multiple audio tracks, subtitles, or other data.

The header can provide information such as file length (in bytes and milliseconds), a Table of Contents section ("toc"), and descriptive metadata.

The header's toc section is an array of X 32-bit unsigned integers. has two versions: 1.0 and 2.0. Section "2.1.1 NSV File Header Table of Contents Format" from the specification states that version 1.0 is "very inaccurate" and "very lacking … it didn't provide enough information for precise seeking." Nevertheless, it states that version 1.0 should still be supported in any implementation. The specification reads: "It is still used as a base for storing the new format, and should be supported in its old format for old content." The 2.0 version is noted as being "mostly backwards compatible."

Metadata in the header can include any additional information stored in name/value pairs. As per "2.1.1. NSV file header meta data format" in the specification, the metadata is structured like so:

[whitespace]NAME=<any nonzero character, C>VALUE<C>[whitespace]

The whitespace values surrounding the metadata is optional. The NAME field is not case-sensitive and can be repeated.

Metadata about the file can be stored between the header and bitstream sections in the form of HTTP header extensions. See "2.1.3. NSV HTTP meta data header extensions" of the specification for more details and examples. These HTTP header fields can go before the bitstream when there is no header, or provide additional descriptive metadata when there is a header.

The bitstream portion of the NSV file consists of a sequence of NSV frames, which can contain synchronization frames and nonsynchronous frames. An NSV bitstream must contain at minimum one synchronization frame to be considered valid, but does not have to contain nonsynchronous frames. Each of these two frame types contain the same payload, but hold different header information.

Whenever an NSV decoder needs to resynchronize with an NSV bitstream, it will look for a synchronization frame. These frames start with the hex numbers 0x4E,0x53,0x56,0x73 (this spells out NSVs in ASCII), and include metadata about the video format, audio format, width of video frame, height of video frame, and framerate. It may also include an "a/v sync offset" which represents the number of milliseconds ahead of the video the audio is in the frame.

Nonsynchronous frames encapsulate more frame data, but do not provide much additional information. These frames start with the hex numbers 0xEF 0xBE and no other supplemental data.

The payload portion of the bitstream contains the following data: number of auxiliary data chunks present, combined video and auxiliary data length, audio data length, length of data for the auxiliary data chunk and type of data followed by the data (these three repeat as many times as possible for the size of the payload), video data, and audio data. Each payload should represent "approximately one frame's worth of data." The audio portion of the payload can be sent before or after the video portion.

Auxiliary data chunks are used to send any additional data other than audio and video, like subtitles, video dimensions data, or additional audio tracks.

Production phase Intended for production use and final end-user state delivery.
Relationship to other formats
    May contain PCM, PCM, Pulse Code Modulated Audio. As noted in Appendix C of the specification.
    May contain MP3_ENC, MP3 (MPEG Layer III Audio Encoding). As noted in Appendix C of the specification.
    May contain AAC_MP2, Advanced Audio Coding (MPEG-2). As noted in Appendix C of the specification. Listed as "MPEG-2 AAC compressed audio data" and "Dolby MPEG-2 AAC compressed audio data."
    May contain SPX, Speex Audio Codec, Version 1.2. As noted in Appendix C of the specification; no version specified.
    May contain DivX_5, DivX Video Codec, Version 5. As noted in Appendix C of the specification as "DivX 4 or DivX 5 compressed video data."
    May contain Appendix C of the specification lists several other video encodings: RGB3 (RGB ordered pixel data, 24 bits per pixel packed), VY12 (YV12 planar YUV data. average of 12 bits per pixel), VP50 (On2 VP5 compressed video data), VP60 (On2 VP6 compressed video data), VP31 (On2 VP3 compressed video data), and VP3. Not described separately at this time.
    May contain Appendix C of the specification lists several other auxiliary encodings: ASYN (Audio/Video resync) and SUBT (Subtitle). Appendix C lists TIME and FRME for timestamp storage and AUXA for auxiliary audio track data, but notes they are "defined but not used, yet." Not described separately at this time.

Local use Explanation of format description terms

LC experience or existing holdings None.
LC preference See the Library of Congress Recommended Formats Statement for format preferences for moving image works.

Sustainability factors Explanation of format description terms

Disclosure Documentation available by Nullsoft, Inc. and America Online, authored by Justin Frankel. Comments welcome.
    Documentation

" Nullsoft Video (NSV) Format 2.1 Specification", by Justin Frankel, last updated January 24, 2005. Available via Internet Archive as an RTF file.

The legacy NSV website included example files, an SDK, and links.

Adoption

NSV was used by Nullsoft's product, Winamp. The format was later integrated into America Online's Video@AOL and Ultravox as a result of AOL acquiring the technology, which they made open source. Ultravox, AOL's proprietary streaming media protocol (link via Internet Archive) used to power Radio@AOL, also served NSV video content. The streaming media service Shoutcast supports this format. Comments welcome. See History for more.

SCVI.net dedicates two pages, Nullsoft Video Software and Nullsoft Video Software Part 2, linking to software that use NSV including Shoutcast servers, other media servers, streaming sites, VJing software (visual- or video- jockey), webcam streaming, and software for saving NSV streams.

A variant of the format, STARDIVA, has been adopted by international agencies. See Notes below for more information on STARDIVA.

    Licensing and patents

The specification (link via Internet Archive) states the copyright as: "America Online, Inc. grants you permission to reproduce and distribute this Specification, however, any copies you reproduce or distribute must be unmodified from the original, including this notice. All other rights are retained by the authors."

The specification also asserts a patent by America Online, see Appendix D: Licenses.

Transparency Depends upon algorithms and tools to read; will require sophistication and documentation to build tools.
Self-documentation

NSV files optionally contain a single file header that can contain additional information about the NSV file, such as title, creator, preferred display aspect ratio, or additional custom fields.

Appendix A of the specification acknowledges these metadata fields explicitly: title, URL, creator, aspect, and framerate.

Metadata can also be set as HTTP header extensions stored after the header (if available) and before the bitstream.

The specification lists the following examples for HTTP header extensions:

x-nsv-title:NewTitle

x-nsv-aspect:0.83333

These header fields would overwrite their corresponding NSV file header values of "TITLE" or "ASPECT" if both are present.

As the header and HTTP header extensions are optional and all metadata is also optional, it is not guaranteed that NSV files will contain any self-documentation.

External dependencies None.
Technical protection considerations None.

Quality and functionality factors Explanation of format description terms

Moving Image
Normal rendering Used to stream media on the web. Can be used to stream television or music.
Clarity (high image resolution) Depends on codec. The specification does not specify any quality limitations other than the combined video and auxiliary data length. If the combined value is greater than 524288 + num_aux*(32768+6), the frame should be deemed invalid.

File type signifiers and format identifiers Explanation of format description terms

Tag Value Note
Filename extension NSV
See Wikidata.
Internet Media Type application/x-winamp
See Wikidata.
Magic numbers 4E535666{24-2048}4E535673

Including the optional header: "4E535666{24-2048}4E535673"

Without the header: "4E535673".

See PRONOM.

Pronom PUID fmt/1176
See https://www.nationalarchives.gov.uk/PRONOM/fmt/1176
Wikidata Title ID Q7069009
See https://www.wikidata.org/wiki/Q7069009

Notes Explanation of format description terms

General

STARDIVA is an NSV-based storage format with video and multiple audio streams that could be used in simultaneous translation session recordings. STARDIVA is a proprietary format used in proprietary software that is also called STARDIVA® and created by Kessler DMP. The format is mentioned briefly in their services document.

The Digital Preservation Coalition considers the format to be endangered: "It is a proprietary format that is no longer supported, cannot be natively preserved and cannot be viewed correctly using standard video playback tools."

MediaArea has software, LeaveSD, to migrate from STARDIVA to other formats. Reverse-engineering work on NSV and STARDIVA metadata extraction can be seen in the MediaInfoLib source code.

STARDIVA is also supported by the open source multimedia framework, FFmpeg. It was added in this patch to the core codebase by FFmpeg contributor Paul B Mahol.

History

The last update to the NSV specification was January 24, 2005. The NSV Tools software was last updated in 2003. It is presumed that development stopped around or prior to 2004. Comments welcome.

Nullsoft was purchased by AOL on June 1, 1999.

Shoutcast was created by NSV's author, Justin Frankel, while at Nullsoft and later also acquired by AOL. AOL then sold Shoutcast in 2014 to Radionomy Group, which still maintains Shoutcast.


Format specifications Explanation of format description terms


Useful references

URLs


Last Updated: 03/26/2024