如何使用MediaCodec和MediaMuxer录制视频和音频

abh*_*pta 6 audio video android mediacodec mediamuxer

我可以在MediaCodec和MediaMuxer的帮助下录制(编码)视频.接下来,我需要借助MediaCodec和MediaMuxer在视频上处理音频部分和多路复用音频.

我面临两个问题:

  1. 如何使用MediaCodec对音频进行编码.我需要在单独的线程中编码音频和视频吗?

  2. 如何将音频和视频数据传递给MediaMuxer(因为writeSampleData()方法一次只接收一种类型的数据)?

我提到了MediaMuxerTest,但它使用的是MediaExtractor.我需要使用MediaCodec,因为视频编码是使用MediaCodec完成的.如果我错了,请纠正我.

任何建议或建议都将非常有用,因为没有适用于这些新API的文档.

注意:

  1. 我的应用针对的是API 18+(Android 4.3+).
  2. 我已经将格拉菲卡称为视频编码.

mst*_*sjo 5

  1. 不,您不一定需要单独的音频线程,只需使用两个单独的MediaCodec实例.

  2. 第一个参数writeSampleDatatrackIndex,它允许您指定每个数据包对应的轨道.(通过运行addTrack两次,每个轨道一次,您将获得两个单独的轨道ID.)