将 mp4 文件逐帧读取到 google ML Kit 的 inputimage 中

Read a mp4 file frame by frame into inputimage of google ML Kit

我正在尝试读取一个 mp4 文件,然后使用 google ML 工具包来分析姿势和面部。我可以使用 ffmpegframegrabber

逐帧读取文件
FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber(path);            frameGrabber.start();
IplImage frame;

try {
    frame = frameGrabber.grab();
} catch (Exception e) {
    e.printStackTrace();
}

现在 google ML 套件对所有内容都使用 inputImage。所以问题是如何将帧转换为输入图像?或者有更好的方法吗?

我可以使用

获取 BufferedImage
BufferedImage  bi = frame.getBufferedImage();

看起来 Android 不支持缓冲图像。我也没有找到将 BufferedImage 转换为 InputImage

的方法

您可以尝试使用 MediaExtractor 获取每个帧的字节缓冲区,然后从提取的缓冲区构建 InputImage。 https://developer.android.com/reference/android/media/MediaExtractor