|
|
|
\input texinfo @c -*- texinfo -*-
|
|
|
|
@documentencoding UTF-8
|
|
|
|
|
|
|
|
@settitle NUT
|
|
|
|
|
|
|
|
@titlepage
|
|
|
|
@center @titlefont{NUT}
|
|
|
|
@end titlepage
|
|
|
|
|
|
|
|
@top
|
|
|
|
|
|
|
|
@contents
|
|
|
|
|
|
|
|
@chapter Description
|
|
|
|
NUT is a low overhead generic container format. It stores audio, video,
|
|
|
|
subtitle and user-defined streams in a simple, yet efficient, way.
|
|
|
|
|
|
|
|
It was created by a group of FFmpeg and MPlayer developers in 2003
|
|
|
|
and was finalized in 2008.
|
|
|
|
|
|
|
|
The official nut specification is at svn://svn.mplayerhq.hu/nut
|
|
|
|
In case of any differences between this text and the official specification,
|
|
|
|
the official specification shall prevail.
|
|
|
|
|
|
|
|
@chapter Modes
|
|
|
|
NUT has some variants signaled by using the flags field in its main header.
|
|
|
|
|
|
|
|
@multitable @columnfractions .4 .4
|
|
|
|
@item BROADCAST @tab Extend the syncpoint to report the sender wallclock
|
|
|
|
@item PIPE @tab Omit completely the syncpoint
|
|
|
|
@end multitable
|
|
|
|
|
|
|
|
@section BROADCAST
|
|
|
|
|
|
|
|
The BROADCAST variant provides a secondary time reference to facilitate
|
|
|
|
detecting endpoint latency and network delays.
|
|
|
|
It assumes all the endpoint clocks are syncronized.
|
|
|
|
To be used in real-time scenarios.
|
|
|
|
|
|
|
|
@section PIPE
|
|
|
|
|
|
|
|
The PIPE variant assumes NUT is used as non-seekable intermediate container,
|
|
|
|
by not using syncpoint removes unneeded overhead and reduces the overall
|
|
|
|
memory usage.
|
|
|
|
|
|
|
|
@chapter Container-specific codec tags
|
|
|
|
|
|
|
|
@section Generic raw YUVA formats
|
|
|
|
|
|
|
|
Since many exotic planar YUVA pixel formats are not considered by
|
|
|
|
the AVI/QuickTime FourCC lists, the following scheme is adopted for
|
|
|
|
representing them.
|
|
|
|
|
|
|
|
The first two bytes can contain the values:
|
|
|
|
Y1 = only Y
|
|
|
|
Y2 = Y+A
|
|
|
|
Y3 = YUV
|
|
|
|
Y4 = YUVA
|
|
|
|
|
|
|
|
The third byte represents the width and height chroma subsampling
|
|
|
|
values for the UV planes, that is the amount to shift the luma
|
|
|
|
width/height right to find the chroma width/height.
|
|
|
|
|
|
|
|
The fourth byte is the number of bits used (8, 16, ...).
|
|
|
|
|
|
|
|
If the order of bytes is inverted, that means that each component has
|
|
|
|
to be read big-endian.
|
|
|
|
|
|
|
|
@section Raw Audio
|
|
|
|
|
|
|
|
@multitable @columnfractions .4 .4
|
|
|
|
@item ALAW @tab A-LAW
|
|
|
|
@item ULAW @tab MU-LAW
|
|
|
|
@item P<type><interleaving><bits> @tab little-endian PCM
|
|
|
|
@item <bits><interleaving><type>P @tab big-endian PCM
|
|
|
|
@end multitable
|
|
|
|
|
|
|
|
<type> is S for signed integer, U for unsigned integer, F for IEEE float
|
|
|
|
<interleaving> is D for default, P is for planar.
|
|
|
|
<bits> is 8/16/24/32
|
|
|
|
|
|
|
|
@example
|
|
|
|
PFD[32] would for example be signed 32 bit little-endian IEEE float
|
|
|
|
@end example
|
|
|
|
|
|
|
|
@section Subtitles
|
|
|
|
|
|
|
|
@multitable @columnfractions .4 .4
|
|
|
|
@item UTF8 @tab Raw UTF-8
|
|
|
|
@item SSA[0] @tab SubStation Alpha
|
|
|
|
@item DVDS @tab DVD subtitles
|
|
|
|
@item DVBS @tab DVB subtitles
|
|
|
|
@end multitable
|
|
|
|
|
|
|
|
@section Raw Data
|
|
|
|
|
|
|
|
@multitable @columnfractions .4 .4
|
|
|
|
@item UTF8 @tab Raw UTF-8
|
|
|
|
@end multitable
|
|
|
|
|
|
|
|
@section Codecs
|
|
|
|
|
|
|
|
@multitable @columnfractions .4 .4
|
|
|
|
@item 3IV1 @tab non-compliant MPEG-4 generated by old 3ivx
|
|
|
|
@item ASV1 @tab Asus Video
|
|
|
|
@item ASV2 @tab Asus Video 2
|
|
|
|
@item CVID @tab Cinepak
|
|
|
|
@item CYUV @tab Creative YUV
|
|
|
|
@item DIVX @tab non-compliant MPEG-4 generated by old DivX
|
|
|
|
@item DUCK @tab Truemotion 1
|
|
|
|
@item FFV1 @tab FFmpeg video 1
|
|
|
|
@item FFVH @tab FFmpeg Huffyuv
|
|
|
|
@item H261 @tab ITU H.261
|
|
|
|
@item H262 @tab ITU H.262
|
|
|
|
@item H263 @tab ITU H.263
|
|
|
|
@item H264 @tab ITU H.264
|
|
|
|
@item HFYU @tab Huffyuv
|
|
|
|
@item I263 @tab Intel H.263
|
|
|
|
@item IV31 @tab Indeo 3.1
|
|
|
|
@item IV32 @tab Indeo 3.2
|
|
|
|
@item IV50 @tab Indeo 5.0
|
|
|
|
@item LJPG @tab ITU JPEG (lossless)
|
|
|
|
@item MJLS @tab ITU JPEG-LS
|
|
|
|
@item MJPG @tab ITU JPEG
|
|
|
|
@item MPG4 @tab MS MPEG-4v1 (not ISO MPEG-4)
|
|
|
|
@item MP42 @tab MS MPEG-4v2
|
|
|
|
@item MP43 @tab MS MPEG-4v3
|
|
|
|
@item MP4V @tab ISO MPEG-4 Part 2 Video (from old encoders)
|
|
|
|
@item mpg1 @tab ISO MPEG-1 Video
|
|
|
|
@item mpg2 @tab ISO MPEG-2 Video
|
|
|
|
@item MRLE @tab MS RLE
|
|
|
|
@item MSVC @tab MS Video 1
|
|
|
|
@item RT21 @tab Indeo 2.1
|
|
|
|
@item RV10 @tab RealVideo 1.0
|
|
|
|
@item RV20 @tab RealVideo 2.0
|
|
|
|
@item RV30 @tab RealVideo 3.0
|
|
|
|
@item RV40 @tab RealVideo 4.0
|
|
|
|
@item SNOW @tab FFmpeg Snow
|
|
|
|
@item SVQ1 @tab Sorenson Video 1
|
|
|
|
@item SVQ3 @tab Sorenson Video 3
|
|
|
|
@item theo @tab Xiph Theora
|
|
|
|
@item TM20 @tab Truemotion 2.0
|
|
|
|
@item UMP4 @tab non-compliant MPEG-4 generated by UB Video MPEG-4
|
|
|
|
@item VCR1 @tab ATI VCR1
|
|
|
|
@item VP30 @tab VP 3.0
|
|
|
|
@item VP31 @tab VP 3.1
|
|
|
|
@item VP50 @tab VP 5.0
|
|
|
|
@item VP60 @tab VP 6.0
|
|
|
|
@item VP61 @tab VP 6.1
|
|
|
|
@item VP62 @tab VP 6.2
|
|
|
|
@item VP70 @tab VP 7.0
|
|
|
|
@item WMV1 @tab MS WMV7
|
|
|
|
@item WMV2 @tab MS WMV8
|
|
|
|
@item WMV3 @tab MS WMV9
|
|
|
|
@item WV1F @tab non-compliant MPEG-4 generated by ?
|
|
|
|
@item WVC1 @tab VC-1
|
|
|
|
@item XVID @tab non-compliant MPEG-4 generated by old Xvid
|
|
|
|
@item XVIX @tab non-compliant MPEG-4 generated by old Xvid with interlacing bug
|
|
|
|
@end multitable
|
|
|
|
|