【问题标题】:Android - how to get frames from video file?Android - 如何从视频文件中获取帧?
【发布时间】:2020-06-07 08:54:33
【问题描述】:

我想从设备上存储的视频文件中提取帧。我找到的每个解决方案都是使用 FFmpegMediaMetadataRetriever 或 MediaMetadaraRetriever,但正如我写的 here 它对我不起作用。还有其他方法可以从视频中提取帧吗?

【问题讨论】:

    标签: android video mediametadataretriever


    【解决方案1】:

    我承认我已经有一段时间没有使用这种方法了,但如果它仍然适用于当前的 Android API,它应该可以解决问题。

    如果它仍然有效,请告诉我。如果不是 - 我将删除此答案。

    public static Bitmap getVideoFrame(Context context, Uri uri, long time) {
    
        Bitmap bitmap = null;
        MediaMetadataRetriever retriever = new MediaMetadataRetriever();
    
        try {
    
            retriever.setDataSource(context, uri);
            bitmap = retriever.getFrameAtTime(time);
    
        } catch (RuntimeException ex) {
            ex.printStackTrace();
    
        } finally {
    
            try {
    
                retriever.release();
    
            } catch (RuntimeException ex) {
                ex.printStackTrace();
            }
        }
    
        return bitmap;
    }
    

    希望这会有所帮助。

    【讨论】:

    • 它不适合我,但是当我使用 setDataSource(context, Uri) 而不是 setDataSource(path) 时它可以工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 2023-03-27
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多