You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
3.9KB

  1. @chapter Muxers
  2. @c man begin MUXERS
  3. Muxers are configured elements in FFmpeg which allow writing
  4. multimedia streams to a particular type of file.
  5. When you configure your FFmpeg build, all the supported muxers
  6. are enabled by default. You can list all available muxers using the
  7. configure option @code{--list-muxers}.
  8. You can disable all the muxers with the configure option
  9. @code{--disable-muxers} and selectively enable / disable single muxers
  10. with the options @code{--enable-muxer=@var{MUXER}} /
  11. @code{--disable-muxer=@var{MUXER}}.
  12. The option @code{-formats} of the ff* tools will display the list of
  13. enabled muxers.
  14. A description of some of the currently available muxers follows.
  15. @section image2
  16. Image file muxer.
  17. This muxer writes video frames to multiple image files specified by a
  18. pattern.
  19. The pattern may contain the string "%d" or "%0@var{N}d", which
  20. specifies the position of the characters representing a numbering in
  21. the filenames. If the form "%d0@var{N}d" is used, the string
  22. representing the number in each filename is 0-padded to @var{N}
  23. digits. The literal character '%' can be specified in the pattern with
  24. the string "%%".
  25. If the pattern contains "%d" or "%0@var{N}d", the first filename of
  26. the file list specified will contain the number 1, all the following
  27. numbers will be sequential.
  28. The pattern may contain a suffix which is used to automatically
  29. determine the format of the image files to write.
  30. For example the pattern "img-%03d.bmp" will specify a sequence of
  31. filenames of the form @file{img-001.bmp}, @file{img-002.bmp}, ...,
  32. @file{img-010.bmp}, etc.
  33. The pattern "img%%-%d.jpg" will specify a sequence of filenames of the
  34. form @file{img%-1.jpg}, @file{img%-2.jpg}, ..., @file{img%-10.jpg},
  35. etc.
  36. The following example shows how to use @file{ffmpeg} for creating a
  37. sequence of files @file{img-001.jpeg}, @file{img-002.jpeg}, ...,
  38. taking one image every second from the input video:
  39. @example
  40. ffmpeg -i in.avi -r 1 -f image2 'img-%03d.jpeg'
  41. @end example
  42. Note that with @file{ffmpeg}, if the format is not specified with the
  43. @code{-f} option and the output filename specifies an image file
  44. format, the image2 muxer is automatically selected, so the previous
  45. command can be written as:
  46. @example
  47. ffmpeg -i in.avi -r 1 'img-%03d.jpeg'
  48. @end example
  49. Note also that the pattern must not necessarily contain "%d" or
  50. "%0@var{N}d", for example to create a single image file
  51. @file{img.jpeg} from the input video you can employ the command:
  52. @example
  53. ffmpeg -i in.avi -f image2 -vframes 1 img.jpeg
  54. @end example
  55. @section mpegts
  56. MPEG transport stream muxer.
  57. This muxer implements ISO 13818-1 and part of ETSI EN 300 468.
  58. The muxer options are:
  59. @table @option
  60. @item -mpegts_original_network_id @var{number}
  61. Set the original_network_id (default 0x0001). This is unique identifier
  62. of a network in DVB. Its main use is in the unique identification of a
  63. service through the path Original_Network_ID, Transport_Stream_ID.
  64. @item -mpegts_transport_stream_id @var{number}
  65. Set the transport_stream_id (default 0x0001). This identifies a
  66. transponder in DVB.
  67. @item -mpegts_service_id @var{number}
  68. Set the service_id (default 0x0001) also known as program in DVB.
  69. @item -mpegts_pmt_start_pid @var{number}
  70. Set the first PID for PMT (default 0x1000, max 0x1f00).
  71. @item -mpegts_start_pid @var{number}
  72. Set the first PID for data packets (default 0x0100, max 0x0f00).
  73. @end table
  74. The recognized metadata settings in mpegts muxer are @code{service_provider}
  75. and @code{service_name}. If they are not set the default for
  76. @code{service_provider} is "FFmpeg" and the default for
  77. @code{service_name} is "Service01".
  78. @example
  79. ffmpeg -i file.mpg -acodec copy -vcodec copy \
  80. -mpegts_original_network_id 0x1122 \
  81. -mpegts_transport_stream_id 0x3344 \
  82. -mpegts_service_id 0x5566 \
  83. -mpegts_pmt_start_pid 0x1500 \
  84. -mpegts_start_pid 0x150 \
  85. -metadata service_provider="Some provider" \
  86. -metadata service_name="Some Channel" \
  87. -y out.ts
  88. @end example
  89. @c man end MUXERS