0

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

4

1 回答 1

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;
}

希望这可以帮助。

于 2020-02-23T16:01:03.547 回答