Remuxer

expect object Remuxer

Lossless container rewrite: ffmpeg -c copy. Packets move from input to output without touching a decoder or encoder, so a full-length movie remuxes in seconds and bit-exact quality is preserved. Use it to change containers (mp4 → mkv), strip streams, cut on keyframes, or re-wrap after a download.

actual object Remuxer

Lossless container rewrite: ffmpeg -c copy. Packets move from input to output without touching a decoder or encoder, so a full-length movie remuxes in seconds and bit-exact quality is preserved. Use it to change containers (mp4 → mkv), strip streams, cut on keyframes, or re-wrap after a download.

actual object Remuxer

Lossless container rewrite: ffmpeg -c copy. Packets move from input to output without touching a decoder or encoder, so a full-length movie remuxes in seconds and bit-exact quality is preserved. Use it to change containers (mp4 → mkv), strip streams, cut on keyframes, or re-wrap after a download.

actual object Remuxer

Lossless container rewrite: ffmpeg -c copy. Packets move from input to output without touching a decoder or encoder, so a full-length movie remuxes in seconds and bit-exact quality is preserved. Use it to change containers (mp4 → mkv), strip streams, cut on keyframes, or re-wrap after a download.

Functions

Link copied to clipboard
expect suspend fun remux(input: String, output: String, streamIndices: List<Int>? = null, startMicros: Long = 0, endMicros: Long = Long.MAX_VALUE, metadata: Map<String, String> = emptyMap(), onProgress: (packetsWritten: Long) -> Unit? = null)

Copy streamIndices (default: every stream the demuxer understands) from input into a fresh container at output. Format inferred from the output extension.

actual suspend fun remux(input: String, output: String, streamIndices: List<Int>?, startMicros: Long, endMicros: Long, metadata: Map<String, String>, onProgress: (packetsWritten: Long) -> Unit?)

Copy streamIndices (default: every stream the demuxer understands) from input into a fresh container at output. Format inferred from the output extension.

actual suspend fun remux(input: String, output: String, streamIndices: List<Int>?, startMicros: Long, endMicros: Long, metadata: Map<String, String>, onProgress: (packetsWritten: Long) -> Unit?)

Copy streamIndices (default: every stream the demuxer understands) from input into a fresh container at output. Format inferred from the output extension.

actual suspend fun remux(input: String, output: String, streamIndices: List<Int>?, startMicros: Long, endMicros: Long, metadata: Map<String, String>, onProgress: (packetsWritten: Long) -> Unit?)

Copy streamIndices (default: every stream the demuxer understands) from input into a fresh container at output. Format inferred from the output extension.