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 |
15 | NUT is a low overhead generic container format. It stores audio, video, |
16 | subtitle and user-defined streams in a simple, yet efficient, way. |
17 | |
18 | It was created by a group of FFmpeg and MPlayer developers in 2003 |
19 | and was finalized in 2008. |
20 | |
21 | The official nut specification is at svn://svn.mplayerhq.hu/nut |
22 | In case of any differences between this text and the official specification, |
23 | the official specification shall prevail. |
24 | |
25 | @chapter Modes |
26 | NUT 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 | |
35 | The BROADCAST variant provides a secondary time reference to facilitate |
36 | detecting endpoint latency and network delays. |
37 | It assumes all the endpoint clocks are synchronized. |
38 | To be used in real-time scenarios. |
39 | |
40 | @section PIPE |
41 | |
42 | The PIPE variant assumes NUT is used as non-seekable intermediate container, |
43 | by not using syncpoint removes unneeded overhead and reduces the overall |
44 | memory usage. |
45 | |
46 | @chapter Container-specific codec tags |
47 | |
48 | @section Generic raw YUVA formats |
49 | |
50 | Since many exotic planar YUVA pixel formats are not considered by |
51 | the AVI/QuickTime FourCC lists, the following scheme is adopted for |
52 | representing them. |
53 | |
54 | The first two bytes can contain the values: |
55 | Y1 = only Y |
56 | Y2 = Y+A |
57 | Y3 = YUV |
58 | Y4 = YUVA |
59 | |
60 | The third byte represents the width and height chroma subsampling |
61 | values for the UV planes, that is the amount to shift the luma |
62 | width/height right to find the chroma width/height. |
63 | |
64 | The fourth byte is the number of bits used (8, 16, ...). |
65 | |
66 | If the order of bytes is inverted, that means that each component has |
67 | to 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 |
83 | PFD[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 |