summaryrefslogtreecommitdiff
path: root/doc/nut.texi (plain)
blob: f9b18f566081df8d87c04d5d0674c7b47d9422b8
1\input texinfo @c -*- texinfo -*-
2@documentencoding UTF-8
3
4@settitle NUT
5
6@titlepage
7@center @titlefont{NUT}
8@end titlepage
9
10@top
11
12@contents
13
14@chapter Description
15NUT is a low overhead generic container format. It stores audio, video,
16subtitle and user-defined streams in a simple, yet efficient, way.
17
18It was created by a group of FFmpeg and MPlayer developers in 2003
19and was finalized in 2008.
20
21The official nut specification is at svn://svn.mplayerhq.hu/nut
22In case of any differences between this text and the official specification,
23the official specification shall prevail.
24
25@chapter Modes
26NUT has some variants signaled by using the flags field in its main header.
27
28@multitable @columnfractions .4 .4
29@item BROADCAST @tab Extend the syncpoint to report the sender wallclock
30@item PIPE @tab Omit completely the syncpoint
31@end multitable
32
33@section BROADCAST
34
35The BROADCAST variant provides a secondary time reference to facilitate
36detecting endpoint latency and network delays.
37It assumes all the endpoint clocks are synchronized.
38To be used in real-time scenarios.
39
40@section PIPE
41
42The PIPE variant assumes NUT is used as non-seekable intermediate container,
43by not using syncpoint removes unneeded overhead and reduces the overall
44memory usage.
45
46@chapter Container-specific codec tags
47
48@section Generic raw YUVA formats
49
50Since many exotic planar YUVA pixel formats are not considered by
51the AVI/QuickTime FourCC lists, the following scheme is adopted for
52representing them.
53
54The first two bytes can contain the values:
55Y1 = only Y
56Y2 = Y+A
57Y3 = YUV
58Y4 = YUVA
59
60The third byte represents the width and height chroma subsampling
61values for the UV planes, that is the amount to shift the luma
62width/height right to find the chroma width/height.
63
64The fourth byte is the number of bits used (8, 16, ...).
65
66If the order of bytes is inverted, that means that each component has
67to be read big-endian.
68
69@section Raw Audio
70
71@multitable @columnfractions .4 .4
72@item ALAW @tab A-LAW
73@item ULAW @tab MU-LAW
74@item P<type><interleaving><bits> @tab little-endian PCM
75@item <bits><interleaving><type>P @tab big-endian PCM
76@end multitable
77
78<type> is S for signed integer, U for unsigned integer, F for IEEE float
79<interleaving> is D for default, P is for planar.
80<bits> is 8/16/24/32
81
82@example
83PFD[32] would for example be signed 32 bit little-endian IEEE float
84@end example
85
86@section Subtitles
87
88@multitable @columnfractions .4 .4
89@item UTF8 @tab Raw UTF-8
90@item SSA[0] @tab SubStation Alpha
91@item DVDS @tab DVD subtitles
92@item DVBS @tab DVB subtitles
93@end multitable
94
95@section Raw Data
96
97@multitable @columnfractions .4 .4
98@item UTF8 @tab Raw UTF-8
99@end multitable
100
101@section Codecs
102
103@multitable @columnfractions .4 .4
104@item 3IV1 @tab non-compliant MPEG-4 generated by old 3ivx
105@item ASV1 @tab Asus Video
106@item ASV2 @tab Asus Video 2
107@item CVID @tab Cinepak
108@item CYUV @tab Creative YUV
109@item DIVX @tab non-compliant MPEG-4 generated by old DivX
110@item DUCK @tab Truemotion 1
111@item FFV1 @tab FFmpeg video 1
112@item FFVH @tab FFmpeg Huffyuv
113@item H261 @tab ITU H.261
114@item H262 @tab ITU H.262
115@item H263 @tab ITU H.263
116@item H264 @tab ITU H.264
117@item HFYU @tab Huffyuv
118@item I263 @tab Intel H.263
119@item IV31 @tab Indeo 3.1
120@item IV32 @tab Indeo 3.2
121@item IV50 @tab Indeo 5.0
122@item LJPG @tab ITU JPEG (lossless)
123@item MJLS @tab ITU JPEG-LS
124@item MJPG @tab ITU JPEG
125@item MPG4 @tab MS MPEG-4v1 (not ISO MPEG-4)
126@item MP42 @tab MS MPEG-4v2
127@item MP43 @tab MS MPEG-4v3
128@item MP4V @tab ISO MPEG-4 Part 2 Video (from old encoders)
129@item mpg1 @tab ISO MPEG-1 Video
130@item mpg2 @tab ISO MPEG-2 Video
131@item MRLE @tab MS RLE
132@item MSVC @tab MS Video 1
133@item RT21 @tab Indeo 2.1
134@item RV10 @tab RealVideo 1.0
135@item RV20 @tab RealVideo 2.0
136@item RV30 @tab RealVideo 3.0
137@item RV40 @tab RealVideo 4.0
138@item SNOW @tab FFmpeg Snow
139@item SVQ1 @tab Sorenson Video 1
140@item SVQ3 @tab Sorenson Video 3
141@item theo @tab Xiph Theora
142@item TM20 @tab Truemotion 2.0
143@item UMP4 @tab non-compliant MPEG-4 generated by UB Video MPEG-4
144@item VCR1 @tab ATI VCR1
145@item VP30 @tab VP 3.0
146@item VP31 @tab VP 3.1
147@item VP50 @tab VP 5.0
148@item VP60 @tab VP 6.0
149@item VP61 @tab VP 6.1
150@item VP62 @tab VP 6.2
151@item VP70 @tab VP 7.0
152@item WMV1 @tab MS WMV7
153@item WMV2 @tab MS WMV8
154@item WMV3 @tab MS WMV9
155@item WV1F @tab non-compliant MPEG-4 generated by ?
156@item WVC1 @tab VC-1
157@item XVID @tab non-compliant MPEG-4 generated by old Xvid
158@item XVIX @tab non-compliant MPEG-4 generated by old Xvid with interlacing bug
159@end multitable
160
161