我想调用一个函数并从图像列表中构建一个视频,然后将其本地保存在设备上:
public void CreateAndSaveVideoFile(List<Bitmap> MyBitmapArray)
{
// ..
}
Run Code Online (Sandbox Code Playgroud)
试验:
在java/xuggle之后 - 将图像数组编码为电影,答案中的链接是一个死链接
以下如何通过编程将图像编码为Java视频文件?,接受的答案中建议的库不支持Android.
上面的下一个答案有针对Android用户的方法,但我不清楚该功能的输入和输出(他在哪里提供图像?他在哪里获得视频?) - 我留下了一个问题评论
上面的下一个答案提供了一个完整的类,但是要包含的所需库有一个损坏的文件(当我尝试从提供的链接下载它时) - 我留下了一个问题评论
遵循Java:如何从图像数组创建电影?,顶部答案中建议的库使用我不熟悉的命令,我甚至不知道如何使用它们.喜欢:
从当前目录中的所有JPEG文件创建MPEG-4文件:
mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc \ -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi
我不知道如何在Java/Android项目中使用上述内容.
任何人都可以帮助指导我或/并为我提供一个方法来完成我的任务吗?提前致谢.
我有一堆本地图像保存为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) 我创建了一个h264原始视频文件,我能够在Android 4.3及更高版本上与Android MediaMuxer进行复用.现在我需要支持Android版本4.1和4.2.我找到了Jcodec.这样做有一个例子:
https://github.com/jcodec/jcodec/blob/master/samples/main/java/org/jcodec/samples/mux/AVCMP4Mux.java
但是我在第70行得到了java.nio.ReadOnlyBufferException异常:
H264Utils.encodeMOVPacket(数据);
我想这段代码不适用于Android?我该如何解决.熟悉Jcodec的人可以帮忙解决这个问题吗?
如何在不使用FFmpeg或JCodec的情况下将图像转换为视频,仅使用android MediaCodec.视频图像是位图文件,可以是ARGB888或YUV420(我的选择).最重要的是视频必须可以在Android设备上播放,最大API是16.我知道API 18 MediaMuxer,我不能使用它.
请帮助我,我坚持了很多天.(JCodec要慢,FFmpeg使用起来很复杂).