小编Jam*_*man的帖子

Android提取解码编码Mux音频

我正在尝试调整ExtractDecodeEditEncodeMuxTest.java中的代码,以便从通过Cordova的device.capture.captureVideo录制的mp4中提取音频和视频,解码音频,编辑解码的音频样本,编码音频,并将音频复用回来用视频再次保存为mp4.

我的第一次尝试只是提取,解码,编码和复用音频而不尝试编辑任何音频样本 - 如果我能做到这一点,我相当确定我可以根据需要编辑解码的样本.我不需要编辑视频,因此我假设我可以简单地使用MediaExtractor来提取和复用视频轨道.

但是,我遇到的问题是我似乎无法正确地获得音频解码/编码过程.不断发生的事情是,复用器从提取的视频轨道和提取的 - >解码 - >编码的音频轨道创建mp4,但是当视频播放正常时,音频以短暂的噪声开始,然后看起来像是最后一个几秒钟的音频数据正常播放(但在视频的开头),然后静音播放视频的其余部分.

一些相关领域:

private MediaFormat audioFormat;
private MediaFormat videoFormat;
private int videoTrackIndex = -1;
private int audioTrackIndex = -1;
private static final int MAX_BUFFER_SIZE = 256 * 1024;

// parameters for the audio encoder
private static final String OUTPUT_AUDIO_MIME_TYPE = "audio/mp4a-latm"; // Advanced Audio Coding
private static final int OUTPUT_AUDIO_CHANNEL_COUNT = 2; // Must match the input stream. not using this, getting from input format
private static final int OUTPUT_AUDIO_BIT_RATE = …
Run Code Online (Sandbox Code Playgroud)

audio android multiplexing mediacodec mediamuxer

7
推荐指数
1
解决办法
2103
查看次数

标签 统计

android ×1

audio ×1

mediacodec ×1

mediamuxer ×1

multiplexing ×1