Как сохранить mp4 файл с использованием MediaMuxer
я пытаюсь получить mp4 файл. Я снимаю видео с помощью camera2 api и могу сохранить это как avc файл с помощью MediaCodec. Но я не понимаю как мне переделать этот код, для кодировния в mp4 файл с помощью MediaMuxer. Ранее использовал mediaRecorder, но на некоторых устройствах он работает некорректно. Не могу найти документации или понятного примера.
private class EncoderCallback : MediaCodec.Callback() {
override fun onInputBufferAvailable(codec: MediaCodec, index: Int) {
}
override fun onOutputBufferAvailable(
codec: MediaCodec,
index2: Int,
info: MediaCodec.BufferInfo
) {
outPutByteBuffer = mCodec!!.getOutputBuffer(index2)
val outDate = ByteArray(info.size)
outPutByteBuffer!![outDate]
try {
Log.i("EncoderCallBack", " outDate.length : " + outDate.size)
outputStream!!.write(outDate, 0, outDate.size)
} catch (e: IOException) {
e.printStackTrace()
}
mCodec!!.releaseOutputBuffer(index2, false)
}
override fun onError(codec: MediaCodec, e: MediaCodec.CodecException) {
Log.i("EncoderCallBack", "Error: $e")
}
override fun onOutputFormatChanged(codec: MediaCodec, format: MediaFormat) {
Log.i("EncoderCallBack", "encoder output format changed: $format")
}
}