当谈到MediaCodec(以及一般的视频编码/解码)时,我有点新意,所以如果我在这里说的任何错误,请纠正我.
我想用VLC/ffplay播放MediaCodec的原始h264输出.我需要这个才能发挥,因为我的最终目标是将一些实时视频流传输到计算机,而MediaMuxer只在磁盘上生成一个文件,而不是我可以以非常低的延迟流式传输到桌面.(我对其他解决方案持开放态度,但我还没有发现任何符合延迟要求的其他解决方案)
这是我正在使用的代码对视频进行编码并将其写入文件:(它基于此处找到的MediaCodec示例,仅删除了MediaMuxer部分)
package com.jackos2500.droidtop;
import android.media.MediaCodec;
import android.media.MediaCodecInfo;
import android.media.MediaFormat;
import android.opengl.EGL14;
import android.opengl.EGLConfig;
import android.opengl.EGLContext;
import android.opengl.EGLDisplay;
import android.opengl.EGLExt;
import android.opengl.EGLSurface;
import android.opengl.GLES20;
import android.os.Environment;
import android.util.Log;
import android.view.Surface;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
public class StreamH264 {
private static final String TAG = "StreamH264";
private static final boolean VERBOSE = true; // lots of logging
// where to put the output file (note: /sdcard requires WRITE_EXTERNAL_STORAGE permission)
private static final …Run Code Online (Sandbox Code Playgroud)