我有一堆本地图像保存为jpeg文件.我的图像是使用CameraPreview捕获的,而PreviewFormat是默认值:NV21.我想从固定数量的图像生成一个小视频.
我不打算使用FFMpeg因为它需要NDK并且会引入兼容性问题.
MediaCodec和MediaMuxer似乎很有效,但网上没有一个可行的解决方案.
有一些参考资料导致我目前的解决方案.
1. EncodeAndMuxTest:http://bigflake.com/mediacodec/EncodeAndMuxTest.java.txt
这个是由法登写的.它非常适合我的需要,除了他使用的是createInputSurface而不是queueInputBuffer.
我按照这个答案进行转换./sf/answers/1198188981/
这个问题看起来与我的很相似,但我不打扰使用MediaMuxer.
我的代码如下:
public class EncodeAndMux extends Activity {
private static final String TAG = "EncodeAndMuxTest";
private static final boolean VERBOSE = false;
private static final File OUTPUT_DIR = Environment
.getExternalStorageDirectory();
private static final String MIME_TYPE = "video/avc";
private static final int FRAME_RATE = 10;
// 10 seconds between I-frames
private static final int IFRAME_INTERVAL = 10;
private static final int NUM_FRAMES …Run Code Online (Sandbox Code Playgroud)