Android 如何在NDK中加载视频文件(位于资产文件夹中)?

Android 如何在NDK中加载视频文件(位于资产文件夹中)?,android,ffmpeg,Android,Ffmpeg,我正在通过android ndk执行ffmpeg,我可以在这里运行一个示例[https://github.com/ccggaass/android-ffmpeg-sample] 我想将视频放在android资产文件夹中,因此如何将此文件传递到ffmpeg api: av_open_input_文件(&p格式,文件:/sdcard/vid.3gp),NULL,0,NULL) 有人知道如何将文件传递到av lib吗?也许这样可以 file:///android_asset/vid.3gp使用以下方法

我正在通过android ndk执行ffmpeg,我可以在这里运行一个示例[https://github.com/ccggaass/android-ffmpeg-sample]

我想将视频放在android资产文件夹中,因此如何将此文件传递到ffmpeg api:

av_open_input_文件(&p格式,文件:/sdcard/vid.3gp),NULL,0,NULL)

有人知道如何将文件传递到av lib吗?

也许这样可以

file:///android_asset/vid.3gp

使用以下方法:

String path = "/sdcard/vid.3gp";
av_open_input_file(&pFormatCtx, "file:/sdcard/vid.3gp", NULL, 0, NULL); 

确保在构建APK时不会压缩资产。(因此我们可以访问其文件描述符) 确保Ffmpeg是使用管道协议支持构建的。 从AAsset_管理器中获取资产文件描述符。 像这样构建文件名

char-fn[32]; sprintf(fn,“管道://%d”,您的资产)

像这样打开它。。。 av打开输入文件(x,fn,…)

祝你好运


注意:不要硬编码/sdcard/path。

@Mar您的资产来自AAsset\u管理器?它是否可以从getAssets().openFd(“video.mp4”).getFileDescriptor()获取?