小编jga*_*ads的帖子

滑音 - 在特定时间从视频加载单帧?

我正在尝试使用Glide逐步浏览视频文件中的帧(而不会遇到关键帧寻求Android遭受的问题).我可以通过以下方式在毕加索做到这一点:

picasso = new Picasso.Builder(MainActivity.this).addRequestHandler(new PicassoVideoFrameRequestHandler()).build();
picasso.load("videoframe://" + Environment.getExternalStorageDirectory().toString() +
                    "/source.mp4#" + frameNumber)
                    .placeholder(drawable)
                    .memoryPolicy(MemoryPolicy.NO_CACHE)
                    .into(imageView);
Run Code Online (Sandbox Code Playgroud)

(frameNumber只是一个int,每次增加50000微秒).我也有像这样的PicassoVideoFrameRequestHandler:

public class PicassoVideoFrameRequestHandler extends RequestHandler {
public static final String SCHEME = "videoframe";

@Override public boolean canHandleRequest(Request data) {
    return SCHEME.equals(data.uri.getScheme());
}

@Override
public Result load(Request data, int networkPolicy) throws IOException {
    FFmpegMediaMetadataRetriever mediaMetadataRetriever = new FFmpegMediaMetadataRetriever();
    mediaMetadataRetriever.setDataSource(data.uri.getPath());
    String offsetString = data.uri.getFragment();
    long offset = Long.parseLong(offsetString);
    Bitmap bitmap = mediaMetadataRetriever.getFrameAtTime(offset, FFmpegMediaMetadataRetriever.OPTION_CLOSEST);
    return new Result(bitmap, Picasso.LoadedFrom.DISK);
}

}
Run Code Online (Sandbox Code Playgroud)

我想改用Glide,因为它可以更好地处理内存.有没有办法在Glide中使用此功能?

或者,实际上,从视频中创建一组帧的任何其他方式,我可以单步执行!

谢谢!

android picasso android-glide

12
推荐指数
3
解决办法
2万
查看次数

标签 统计

android ×1

android-glide ×1

picasso ×1