【问题标题】:How to convert 7sec Video to Gif Android如何将 7 秒视频转换为 Gif Android
【发布时间】:2014-08-21 20:18:30
【问题描述】:

我正在制作一个将拍摄的视频剪辑转换为 Gif 的应用程序。我想知道是否有一个库可以在 Android 上直接将视频转换为 gif。

我尝试提取视频的所有帧并将它们编码为 gif,但我只获得了视频的第一帧。我的代码如下:

         public static final int GIF_DELAY_BETWEEN_FRAMES = 100;  
         public static final float SPEED_RATIO = 1.1f; 

         Uri videoFileUri=Uri.parse(mOutputFile.toString());
        FFmpegMediaMetadataRetriever retriever = new FFmpegMediaMetadataRetriever();
        retriever.setDataSource(mOutputFile.getAbsolutePath());
         rev = new ArrayList<Bitmap>();
        MediaPlayer mp = MediaPlayer.create(RecorderActivity.this, videoFileUri);
         int millis = mp.getDuration();
         for(int i=1000000;i<millis*1000;i+=1000000){
            Bitmap bitmap =           retriever.getFrameAtTime(i,FFmpegMediaMetadataRetriever.OPTION_CLOSEST);
        rev.add(bitmap);

        }   

        FileOutputStream outStream = null;
        try{
            outStream = new FileOutputStream(Environment.getExternalStorageDirectory()+ "/test.gif");
            outStream.write(generateGIF());
            outStream.close();
         }catch(Exception e){
            e.printStackTrace();
         }


        public byte[] generateGIF() {
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        AnimatedGifEncoder encoder = new AnimatedGifEncoder();
        encoder.setDelay((int)(GIF_DELAY_BETWEEN_FRAMES * (1 / SPEED_RATIO)));
        encoder.start(bos);
        for (Bitmap bitmap : rev) {
            encoder.addFrame(bitmap);
        }
        encoder.finish();
        return bos.toByteArray();
     }

请帮帮我...谢谢

【问题讨论】:

    标签: java android video ffmpeg


    【解决方案1】:

    看看 JMF(Java 媒体框架)。你需要一些时间 学习基础知识。然后你将能够做到这一点。我没有一个代码 现在和我一起采样,但据我所知,你必须创建播放器, 然后从中检索为您提供访问权限的适当“控件” 到帧。

    这是一个开始的例子: http://khemsoi.blogspot.com/2006/03/jmf-frame-grabber.html

    来自Lib/API for create small gif from video?

    【讨论】:

    • 谢谢..我会努力学习的。但与此同时,您还有其他更直接的方法吗?谢谢
    • 这只是一个简短的“sn-p”代码,不是吗?
    • 但不幸的是,android 不支持 java.awt.Image。
    猜你喜欢
    • 2020-03-17
    • 2017-04-20
    • 2016-11-23
    • 2014-12-16
    • 2017-04-05
    • 1970-01-01
    • 2021-10-20
    • 2014-10-12
    相关资源
    最近更新 更多