小编Puj*_*ari的帖子

无需使用媒体提取器,无法在Android 4.2上对视频进行低级解码

我想在不使用提取器的情况下解码视频帧.所以我只尝试了一个小样本,我在那里使用了媒体提取器,但我没有 extractor.readsample()将比特流数据复制到输入缓冲区而是使用FFmpeg解析器,在JNI中,我将视频帧记忆到输入字节缓冲区然后排队输入缓冲区..但是当我调用时decoder.dequeueOutputBuffer(info, 10000),它返回MediaCodec.INFO_TRY_AGAIN_LATER.虽然我使用它可以正常工作extractor.readsample().

请在下面找到以下代码段:

Java方面:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;

import android.app.Activity;
import android.media.MediaCodec;
import android.media.MediaCodec.BufferInfo;
import android.media.MediaExtractor;
import android.media.MediaFormat;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.Surface;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class VideoBrowser extends Activity implements SurfaceHolder.Callback {
    private static final String SAMPLE = Environment.getExternalStorageDirectory() + "/obama.mp4";
    private PlayerThread mPlayer = null;
    private static native <jintArray> int AVinitializecntxt(String strl, jintArray arr);
    private native int AVREADVIDEO(byte[] array); …
Run Code Online (Sandbox Code Playgroud)

android video-processing decoding android-mediarecorder

20
推荐指数
1
解决办法
1341
查看次数