@UnstableApi
public interface Muxer

Known direct subclasses
DefaultMuxer

A default Muxer implementation.

FragmentedMp4Muxer

A muxer for creating a fragmented MP4 file.

InAppMuxer

Muxer implementation that uses an Mp4Muxer or FragmentedMp4Muxer.

Mp4Muxer

A muxer for creating an MP4 container file.


The muxer for producing media container files.

Summary

Nested types

public interface Muxer.Factory

Factory for muxers.

public final class Muxer.MuxerException extends Exception

Thrown when a muxer failure occurs.

public interface Muxer.TrackToken

A token representing an added track.

Public methods

abstract void

Adds metadata about the output file.

abstract Muxer.TrackToken
addTrack(Format format)

Adds a track of the given media format.

abstract void

Closes the file.

abstract void
writeSampleData(
    Muxer.TrackToken trackToken,
    ByteBuffer byteBuffer,
    MediaCodec.BufferInfo bufferInfo
)

Writes encoded sample data.

Public methods

addMetadataEntry

abstract void addMetadataEntry(Metadata.Entry metadataEntry)

Adds metadata about the output file.

addTrack

abstract Muxer.TrackToken addTrack(Format format)

Adds a track of the given media format.

Parameters
Format format

The Format of the track.

Returns
Muxer.TrackToken

The TrackToken for this track, which should be passed to writeSampleData.

Throws
androidx.media3.muxer.Muxer.MuxerException

If the muxer encounters a problem while adding the track.

close

abstract void close()

Closes the file.

The muxer cannot be used anymore once this method returns.

Throws
androidx.media3.muxer.Muxer.MuxerException

If the muxer fails to finish writing the output.

writeSampleData

abstract void writeSampleData(
    Muxer.TrackToken trackToken,
    ByteBuffer byteBuffer,
    MediaCodec.BufferInfo bufferInfo
)

Writes encoded sample data.

Parameters
Muxer.TrackToken trackToken

The TrackToken of the track, previously returned by addTrack.

ByteBuffer byteBuffer

A buffer containing the sample data to write to the container.

MediaCodec.BufferInfo bufferInfo

The BufferInfo of the sample.

Throws
androidx.media3.muxer.Muxer.MuxerException

If the muxer fails to write the sample.