【问题标题】:How to load a video file(located in assets folder ) in NDK?如何在 NDK 中加载视频文件(位于 assets 文件夹中)?
【发布时间】:2013-03-26 18:50:01
【问题描述】:

我正在通过 android ndk 执行 ffmpeg,我可以在此处运行示例 [https://github.com/ccggaass/android-ffmpeg-sample]。

我想把视频放在android assets文件夹中,那么如何将此文件传递给ffmpeg api:

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

有谁知道如何将文件传递给 av lib?

【问题讨论】:

    标签: android ffmpeg


    【解决方案1】:

    使用这个:

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

    【讨论】:

      【解决方案2】:

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

      字符 fn[32]; sprintf(fn,"pipe://%d", your_assets_fd);

      像这样打开它... av_open_input_file(x, fn, ...);

      祝你好运。

      附:不要硬编码 /sdcard/ 路径。

      【讨论】:

      • @Mar your_assets_fd 来自 AAsset_manager?它可以来自 getAssets().openFd("video.mp4").getFileDescriptor() 吗?
      【解决方案3】:

      也许这会起作用

      file:///android_asset/vid.3gp

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-21
        • 1970-01-01
        • 2011-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多