相关疑难解决方法(0)

如何从 MP4 中逐帧获取?(媒体编解码器)

实际上我正在使用 OpenGL,我想将我所有的纹理都放在 MP4 中以压缩它们。

然后我需要从我的 Android 上的 MP4 中获取它

我需要以某种方式解码 MP4 并根据请求逐帧获取。

我找到了这个 MediaCodec

https://developer.android.com/reference/android/media/MediaCodec

和这个 MediaMetadataRetriever

https://developer.android.com/reference/android/media/MediaMetadataRetriever

但是我没有看到如何逐帧请求的方法......

如果有人用过MP4,请给我一个去哪里的方法。

PS我正在使用本机方式(JNI),所以怎么做都无所谓..Java或本机,但我需要找到方法。

编辑1

我制作了某种电影(只有一个 3d 模型),所以我每 32 毫秒更改一次几何和纹理。因此,在我看来,将 mp4 用于 tex 似乎是合理的,因为每个新帧(32 毫秒)都与原始帧非常相似......

现在我为一个模型使用 400 帧。对于几何,我使用 .mtr,对于 tex,我使用 .pkm(因为它针对 android 进行了优化),所以我有大约 350 个 .mtr 文件(因为有些文件包含子索引)和 400 个 .pkm 文件......

这就是为什么我要为 tex 使用 mp4 的原因。因为一个 mp4 比 400 .pkm 小得多

编辑2

请看一下 Edit1

实际上,我需要知道的只是可以MP4按帧读取的Android API ?也许某种getNextFrame()方法?

像这样的东西

MP4Player player = new MP4Player(PATH_TO_MY_MP4_FILE);

void readMP4(){
   Bitmap b;

   while(player.hasNext()){ …
Run Code Online (Sandbox Code Playgroud)

mp4 android opengl-es android-mediacodec

4
推荐指数
1
解决办法
6293
查看次数

标签 统计

android ×1

android-mediacodec ×1

mp4 ×1

opengl-es ×1