Class Muxer

Class Documentation

class Muxer

Media muxer for writing packets to container formats.

Muxer writes compressed packets to output files or streams, combining multiple streams (audio, video, etc.) into a single container format.

Public Functions

Muxer(const std::string &uri, const std::optional<std::string> &muxer)

Construct a muxer for writing to a URI.

Parameters:
  • uri – Output URI (file path, etc.).

  • muxer – Optional muxer format name.

Muxer(const Muxer&) = delete

Deleted copy constructor.

Muxer &operator=(const Muxer&) = delete

Deleted copy assignment operator.

Muxer(Muxer&&) = delete

Deleted move constructor.

Muxer &operator=(Muxer&&) = delete

Deleted move assignment operator.

~Muxer()

Destructor.

template<MediaType media>
EncoderPtr<media> add_encode_stream(const EncodeConfigBase<media> &codec_config, const std::optional<std::string> &encoder, const std::optional<OptionDict> &encoder_config)

Add a stream with encoding.

Template Parameters:

media – Media type (Audio or Video).

Parameters:
  • codec_config – Encoding configuration.

  • encoder – Optional encoder name.

  • encoder_config – Optional encoder-specific options.

Returns:

Encoder instance for the new stream.

template<MediaType media>
void add_remux_stream(const Codec<media> &codec)

Add a stream for remuxing (without re-encoding).

Template Parameters:

media – Media type (Audio or Video).

Parameters:

codecCodec information from the source.

void open(const std::optional<OptionDict> &muxer_config)

Open the muxer for writing.

Parameters:

muxer_config – Optional muxer-specific options.

template<MediaType media>
void write(int i, Packets<media> &packets)

Write packets to a stream.

Template Parameters:

media – Media type (Audio or Video).

Parameters:
  • i – Stream index.

  • packetsPackets to write.

void flush()

Flush any buffered packets.

void close()

Close the muxer and finalize the output.