| \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 |
| |