处理视频时 Android MediaCodec : video file processing: add the original audio,

标签 android audio android-mediacodec

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

我基本上是按照bigflake.com中的例子DecodeEditEncodeTest.java和MeidaMuxerText.java 在不添加音轨的情况下,该应用程序运行良好。 现在我将音轨添加到 mMuxer 中。

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

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

如果我将 inputBuf 设置为一个通用的 ByteBuffer,并且如果样本结果是音频,那就没问题了。 我只是使用 mMuxer.writeSampleData 将 inputBuf 写入输出视频文件。

但如果样本结果是视频,那么我应该将数据写入解码器的输入缓冲区。但是现在因为我一开始并不知道,我该如何确定要使用哪个缓冲区?

最佳答案

MediaExtractor.getSampleTrackIndex() 告诉您当前样本来自哪个轨道。

关于处理视频时 Android MediaCodec : video file processing: add the original audio,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22622824/

相关文章:

java - 在 list 中引用新 Activity

ios - Objective C/IOS - 将音频流保存到文件

java - 声音结束后执行 Action

android - PCM -> AAC (Encoder) -> PCM(Decoder) 实时正确优化

android - 有什么方法可以隐藏我的应用程序的进程和已安装的列表吗?

java - 无需重新登录 asmack 即可更改 Activity

android - 是否可以在 android 中注册长按链接的 Intent ?

actionscript-3 - 加载ID3标签而不在AS3中加载声音

android - 缓冲 Surface 输入到 MediaCodec

Android:同时播放多个视频