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

时间:2014-10-29 11:03:18

标签: android audio video mediacodec mediamuxer

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

我面临两个问题:

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

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

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

    任何建议或建议都会非常有用,因为这些新API没有适当的文档。

    注意:

    1. 我的应用程序定位到API 18+(Android 4.3 +)。
    2. 我已提及Grafika进行视频编码。

1 个答案:

答案 0 :(得分:5)

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

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