如何向MediaMux提供音频数据和视频数据

Bre*_*sai 6 audio video android mediacodec

我正在尝试通过预览获取视频原始数据,通过AudioRecord获取音频原始数据.然后我将它们发送到MediaCodec(我将设置两个Codec实例).之后,我将视频数据和音频数据发送到MediaMux以获取mp4文件.我有两个问题:

1)之前我曾使用MediaMux处理视频数据.对于视频数据,MediaMux按帧处理,但视频记录是连续的.MediaMux如何同步处理视频和音频.

2)我在函数writeSampleData中只找到了inputbuffer的变量.StackOverflow上的一个好人也提供了MediaMux的演示.但是这个演示只有一个源数据变量.这个变量怎么能同时代表视频数据和音频数据呢?

谢谢!

小智 8

我已成功通过同步音频和视频MediaMuxer.我计算了每帧视频应播放的音频样本数:基于音频采样率和视频帧率.然后我有一个循环,在每次迭代中写入一个视频帧和一个音频块.使用演示时间确保它们在播放时同步.使用来自addTrack通话中的音轨索引writeSampleData,允许将视频和音频写入两个单独的音轨.