muxer = new MediaMuxer(outputFile.getAbsolutePath(),
MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4);
複製代碼
audioTrackIndex = muxer.addTrack(audioEncoder.getOutputFormat());
videoTrackIndex = muxer.addTrack(videoEncoder.getOutputFormat());
複製代碼
muxer.start();
複製代碼
開始以後,就能夠調用MediaMuxer.writeSampleData()向mp4文件中寫入數據了。須要注意每次只能添加一幀視頻數據或者單個Sample的音頻數據,而且BufferInfo對象的值必定要設置正確
bash
muxer.writeSampleData(audioTrackIndex, encodedData, bufferInfo);
muxer.writeSampleData(videoTrackIndex, encodedData, bufferInfo);
複製代碼
muxer.stop();
muxer.release();複製代碼
參考文章:ide
https://www.jianshu.com/p/aeadf260258a
函數