FFMPeg 异常 setDataSource 失败:状态 = 0xFFFFFFFF

2023-12-22

我有 175 个 mp4 文件。当我处理从索引 0 到索引 65(或 66)的文件时,出现异常:

java.lang.IllegalArgumentException: setDataSource failed: status = 0xFFFFFFFF
at wseemann.media.FFmpegMediaMetadataRetriever.setDataSource(Native Method)
at com.jni.utils.Mp4ParserUsingFFMpeg.createThumbnail(Mp4ParserUsingFFMpeg.java:518)
at com.example.readmdtfile.activity.MainActivity$createMp4Async.createThumbnail(MainActivity.java:71)
at com.example.readmdtfile.activity.MainActivity$createMp4Async.doInBackground(MainActivity.java:55)
at com.example.readmdtfile.activity.MainActivity$createMp4Async.doInBackground(MainActivity.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)

如果我从索引 65(或附近)运行进程,则处理文件 65 会成功。但有时还是会出现异常 这是我正在使用的代码:

public static Bitmap createThumbnail (String videoPath) {
    FFmpegMediaMetadataRetriever retriever = new  FFmpegMediaMetadataRetriever();
    Bitmap bitmap = null;
    try {
        retriever.setDataSource(videoPath); //file's path
        String key;
        String value;
        for (int i = 0; i < MetadataKey.METADATA_KEYS.length; i++) {
            key = MetadataKey.METADATA_KEYS[i];
            value = retriever.extractMetadata(key);
            if (value != null) {
                // metadata.add(new Metadata(key, value));
                Log.i(TAG, "Key: " + key + " Value: " + value);
            }
        }

        bitmap = retriever.getFrameAtTime();

        if (bitmap != null) {
            Log.d(TAG, "Extracted frame");
            Bitmap b2 = retriever.getFrameAtTime(4000000,
                    FFmpegMediaMetadataRetriever.OPTION_CLOSEST_SYNC);
            if (b2 != null) {
                bitmap = b2;
            }
        } else {
            Log.d(TAG, "Failed to extract frame");
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        retriever.release();
    }

    return bitmap;
}

https://github.com/wseemann/FFmpegMediaMetadataRetriever/issues/59 https://github.com/wseemann/FFmpegMediaMetadataRetriever/issues/59

请帮我。


错误很简单,一个IllegalArgumentException表示视频 URI 无效,如果发生这种情况,则会引发异常。在尝试使用 URI 之前验证它是否有效FFmpegMediaMetadataRetriever.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FFMPeg 异常 setDataSource 失败:状态 = 0xFFFFFFFF 的相关文章

随机推荐

  • 函数参数中的 `type_alias{}` VS `char[N]{}`

    环境 x86 64Clang 6 0 0 函数的定义 void foo const char foo char 16 houston there is a problem foo type alias
  • 您可以在 iPhone 上执行 Ping 或 Traceroute 命令吗?

    奇怪的问题 我知道我可以在 OS X Objective C 中执行此操作 但是您可以对 iPhone 上的 IP 或 URL 运行 ping 吗 有框架支持吗 与执行跟踪路由相同 None
  • VBA查找多个文件

    我有这段代码 它根据搜索字符串查找文件名 以及文件路径 这段代码在查找单个文件时效果很好 我希望这个宏能够查找多个文件并使用逗号分隔显示它们的名称 Function FindFiles path As String SearchStr As
  • boost::python:编译失败,因为复制构造函数是私有的

    我使用 boost python 来包装 C 类 这个类不允许复制构造函数 但 python 模块总是想创建一个 C 类看起来像这样 简化 class Foo public Foo const char name constructor p
  • EntityMode.Map 与 Hibernate 4.2.6+ Spring 3.2

    我正在尝试使用动态休眠模型 下面是获取会话的代码片段 我已经声明了 hibernate default entity mode as dynamic map 在 hibernate 会话工厂配置 xml 中 Declared at clas
  • 强制 Backbone 将属性保存为文件

    有没有办法使用Model set and Model save以强制 Backbone 将数据作为文件发送到服务器的方式 就像您提交带有
  • Javascript库:混淆还是不混淆 - 这就是问题[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我需要编写一个与 GUI 相关的 javascript 库 它将给我的网站带来一点优势 就我可以提供的
  • []byte(字符串) 与 []byte(*字符串)

    我很好奇为什么 Go 不提供 byte string 方法 从性能角度来说 不会 byte string 复制输入参数并增加更多成本 尽管这看起来很奇怪 因为字符串是不可变的 为什么要复制它们 byte something 不是函数 或方法
  • 评估 PHP 中的 XPath 2.0

    我目前正在开发一个用 PHP 编写的项目 并且想要评估 XML 文件上的 XPath 表达式 由于文件相当复杂 我的 XPath 包含如下表达式为了 回报 循环或 XPath 2 引入的其他功能 不幸的是 PHP 的DOMXPath htt
  • facebook javascript sdk 登录在 iOS 上不起作用/移动设备的最佳实践

    我试图允许用户使用 javascript SDK 通过 facebook 登录登录我的 web 应用程序 它适用于桌面 safari 和 chrome 但弹出窗口在 iOS 上的 safari 和 chrome 上均失败 该错误直接发送至不
  • Laravel PHPUnit 模拟请求

    我正在我的控制器上执行 PHPUnit 但我似乎无法正确模拟请求 这是控制器 use Illuminate Http Request public function insert Request request some codes her
  • 无法生成临时类(结果=1)。错误CS0030:

    我正在尝试使用贝宝快速结账https www sandbox paypal com wsdl PayPalSvc wsdl https www sandbox paypal com wsdl PayPalSvc wsdl 当我打电话使用时
  • 在for循环中运行replace()方法?

    已经很晚了 我一直在尝试编写一个简单的脚本 将点云数据重命名为工作格式 我不知道我做错了什么 因为底部的代码工作正常 为什么for循环中的代码不起作用 它将其添加到列表中 但它只是没有被替换功能格式化 抱歉 我知道这不是调试器 但我真的很困
  • 如何使用 Gmail 中的标签来识别单个邮件而不是已由脚本处理的线程

    使用 google 邮件脚本 我尝试使用 API 将带有某些标签的新电子邮件上传到我们的 CRM 我无法检查邮件是否已上传 因此我必须在邮箱中为之前已处理过的邮件应用标签 不幸的是 谷歌脚本只允许您在线程级别添加或检查标签 由于新消息可以在
  • 使用 sqlplus 检索大型 clob 数据

    如何使用 sqlplus 将大 clob 数据从表中完全检索到标准输出 有一种方法可以使用特定于语言的数据库 API 来完全获得它 但是当我尝试纯粹使用 sqlplus 来获取它时 我遇到了几个问题 例如 输出缓冲区太小 最大 4000 字
  • Xamarin:应用程序未安装问题

    当我在 Android 移动设备上以调试模式安装应用程序时 它似乎已安装 但是 在签署应用程序并发布后 它并未安装在我的手机上 释放模式 它说 应用程序未安装 我尝试了一些方法但无法解决这个问题 我还用另一个密钥库进行了测试 但仍然无法安装
  • 将匿名侦听器与 C# 和垃圾收集中的事件分离

    假设我有一个名为 Dialog 的类 它扩展了 Form 对话框上有一个文本框和一个 确定 按钮 当用户单击 确定 时 文本框值将通过事件返回 public class Dialog Form public delegate void on
  • 命令替换中的 Heredoc:引号或括号不平衡时出错(bash 和 zsh)

    考虑以下用于打印单引号的混淆脚本 该脚本适用于ksh bin ksh echo cat lt
  • Hive Utf-8 编码支持的字符数?

    您好 实际上问题如下 我想要插入到 hive 表中的数据包含拉丁单词 并且采用 utf 8 编码格式 但 hive 仍然无法正确显示 Actual Data 数据插入到hive中 我将表的编码更改为 utf 8 下面的 hive DDL 和
  • FFMPeg 异常 setDataSource 失败:状态 = 0xFFFFFFFF

    我有 175 个 mp4 文件 当我处理从索引 0 到索引 65 或 66 的文件时 出现异常 java lang IllegalArgumentException setDataSource failed status 0xFFFFFFF