Java 如何在Android中生成视频预览缩略图

Java 如何在Android中生成视频预览缩略图,java,android,video,thumbnails,preview,Java,Android,Video,Thumbnails,Preview,场景是当用户从多媒体资料中选择视频时,它将创建所选视频的预览缩略图,如单个图像。然后视频和预览缩略图都将保存在数据库中。可以在单个图像中创建预览缩略图吗?有一个名为“FFmpeg”的工具,它有一个命令,可以随时获取第一个图像,甚至任何图像。FFmpeg-i video.webm-ss 00:00:07.000-vframes 1 thumb.jpg 此命令在第7秒的时间内只能获取一张图片,视频文件的名称为“video.webm”。使用Glide Glide.with(this).asBitmap

场景是当用户从多媒体资料中选择视频时,它将创建所选视频的预览缩略图,如单个图像。然后视频和预览缩略图都将保存在数据库中。可以在单个图像中创建预览缩略图吗?

有一个名为“FFmpeg”的工具,它有一个命令,可以随时获取第一个图像,甚至任何图像。

FFmpeg-i video.webm-ss 00:00:07.000-vframes 1 thumb.jpg


此命令在第7秒的时间内只能获取一张图片,视频文件的名称为“video.webm”。

使用Glide

Glide.with(this).asBitmap().load(url).into(new SimpleTarget<Bitmap>() {
        @Override
        public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {
            mVidorExoPlayerView.setDefaultArtwork(resource);
// you can use "resource" as bitmap :)
        }
    });
Glide.with(this).asBitmap().load(url).into(new SimpleTarget()){
@凌驾

public void onResourceReady(位图资源,过渡我不确定是否有现成的库,可以为您提供预览缩略图,其中包含不同时间的多个视频帧,全部缝合在一起

但如果我要这样做,我会寻找一种可以在指定时间检索视频帧的方法。然后,给定视频长度,我们可以在不同的时间间隔请求帧,并将它们缝合在一起,得到一个大的预览缩略图

Android支持
[MediaMetadataRetriever][1]
,允许提取视频帧(不确定您是否已经尝试过)。好的,它可以与
mp4
格式配合使用


另一个选项是在服务器端创建预览缩略图并使用它(显然下载缩略图会有开销).

它是一个库吗?是的,我已经使用这个库半年多了,所以我可以给出这个建议。官方链接是如何在android项目中实现这个,它说它支持windows、iOS和linux。这对android可用吗?是的,我使用它的方法是:在后台作为一个进程运行命令,完成后,我将l从路径(文件夹)中获取所需结果你能给我一个android示例项目吗?我不熟悉Commands。我计划使用这个库,这就是为什么我需要自己创建预览缩略图的原因。看起来你已经有了缩略图,我需要的是生成预览缩略图。无论如何,感谢你的示例代码,它可能会对某人有所帮助。你尝试过你的uri吗这段代码中的url是什么?我将在浏览seekbar时使用缩略图作为预览,就像这里一样,而不是playerview的占位符,这意味着在流媒体之前已经创建了缩略图。虽然结果应该是这样,但Glide不支持在线视频流媒体,所以我无法使用我仍在搜索的视频的url为此,我将尝试使用Android提供的内置库提取视频帧。