音视频可以单独合成,拆解,也可以一起
1、MediaMuxer
MediaMuxer(path,format):文件路径,文件合成格式
start:启动
release:方法
addTrack(mediaFormat):添加音视频格式,返回轨道id
writeSampleData(int trackIndex,ByteBuffer byteBuf,BufferInfo bufferInfo) 指定轨道写入数据
2、MediaExtractor
MediaExtractor():生成对象
setDataSource:设置文件路径
getTrackFormat:单个轨道对象的格式
selectTrack:选择轨道,选择后,即可读取相应数据
start:启动
release:方法
readSampleData(ByteBuffer byteBuf,int offset) 读取数据
注意:音视频同步问题,extractor.sampleTime表示当前帧时间戳;写入数据时,参数bufferInfo中presentationTimeUs为时间戳信息