nut.texi 4.4 KB

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