如何在android中以编程方式将视频转换为gif
是否可以在Android中通过编程方式将录制的视频转换为GIF? 你能帮我写一些剪贴代码或者告诉我怎么做吗 我的建议是使用并调用如何在android中以编程方式将视频转换为gif,android,Android,是否可以在Android中通过编程方式将录制的视频转换为GIF? 你能帮我写一些剪贴代码或者告诉我怎么做吗 我的建议是使用并调用getFrameAtTime()方法来检索要提取的帧: // Get your video file File myVideo = new File (Environment.getExternalStorageDirectory().getAbsolutePath(),
getFrameAtTime()
方法来检索要提取的帧:
// Get your video file
File myVideo = new File
(Environment.getExternalStorageDirectory().getAbsolutePath(),
"YOUR_FILE.mp4");
// URI to your video file
Uri myVideoUri = Uri.parse(myVideo.toString());
// MediaMetadataRetriever instance
MediaMetadataRetriever mmRetriever = new MediaMetadataRetriever();
mmRetriever.setDataSource(myVideo.getAbsolutePath());
// Array list to hold your frames
ArrayList<Bitmap> frames = new ArrayList<Bitmap>();
//Create a new Media Player
MediaPlayer mp = MediaPlayer.create(getBaseContext(), myVideoUri);
// Some kind of iteration to retrieve the frames and add it to Array list
Bitmap bitmap = mmRetriever.getFrameAtTime(TIME IN MICROSECONDS);
frames.add(bitmap);
ffmpeg
,抓取部分或整个视频并将其转换为gif
或MediaRetriever
提取帧范围,只需在该范围内循环,然后转换为可绘制或位图,即可保存
或SurfaceView文件夹
或SurfaceView
画布播放视频时抓取帧你能告诉我如何得到所有的帧吗。它的循环是什么。你能回答吗?mmRetriever.setDataSource(myVideo.getAbsolutePath());你为什么要创建新的MediaPlayer?有必要吗?@Delagro,好像没用过。不知道我为什么这么做。很难说4年前我是怎么想的。虽然有效,但速度很慢。在完成这项工作后,我决定在云中创建GIF。
AnimationDrawable animatedGIF = new AnimationDrawable();
animationDrawable.addFrame("FIRST FRAME", 50);
animationDrawable.addFrame("SECOND FRAME", 50);
...
animationDrawable.addFrame("LAST FRAME ", 50);