Android MediaCodec:视频文件处理:添加原始音频,同时处理视频

时间:2014-03-24 23:45:13

标签: android audio mediacodec

输入是视频文件。 我想处理每个视频帧,而音频保持不变。 输出是一个视频文件。

我基本上遵循bigflake.com中的示例DecodeEditEncodeTest.java和MeidaMuxerText.java 无需添加音轨,应用程序运行良好。 现在我将音轨添加到mMuxer中。

由于我不需要处理音频,因此我不对音频使用解码或编码。

这是一个两难的境地。 如果我想知道样本数据是视频还是音频,我将使用: int chunkSize = extractor.readSampleData(inputBuf,0)

如果我将inputBuf设置为一般的ByteBuffer,并且如果样本结果是音频,则可以。 我只是使用mMuxer.writeSampleData将inputBuf写入输出视频文件。

但如果样本结果是视频,那么我应该在解码器的输入缓冲区中写入数据。但是现在因为我不知道它,我怎么能确定使用哪个缓冲区呢?

1 个答案:

答案 0 :(得分:2)

MediaExtractor.getSampleTrackIndex()告诉您当前样本来自哪条曲目。